回答編集履歴
1
typo修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
> ハードウェアやC、Linuxを初めて、基礎を固めるのがいいかなと・・
|
4
4
|
|
5
|
-
「コンピュータの仕組みを把握
|
5
|
+
「コンピュータの仕組みを把握すれば、様々なプログラミングをする際に応用が効き、より優れたプログラムを開発できるのではないか?」とのお考えでは?
|
6
6
|
|
7
7
|
「より優れたプログラム」は2つの方向性があると思います。
|
8
8
|
|
@@ -17,7 +17,7 @@
|
|
17
17
|
そして、コンピュータの仕組みを把握していると②にたいへん有用です。特にマルチ・スレッドや排他制御の経験があると、性能と開発工数のバランスの取れたプログラムを設計できるようになります。(この辺を知らないと、コールバック地獄か、再現性のないバグに悩まされることが格段に増えます。)
|
18
18
|
|
19
19
|
ここを学習するには、非常に単純なコンピュータ(マイコンと呼ばれるようなもの)で、アセンブラ、もしくは、C言語で低レベルな割り込み駆動プログラムの開発経験があると強いです。特に割り込みが頻発するようなものならば、排他制御不具合が再現しやすいので効果的に学習できます。
|
20
|
-
更にごく簡単で十分ですのでスレッド切り替えの開発経験があると非常に力強いです。(これは割り込みの延長線にあり、仕組みは極簡単です。レジスタを退避して、スタックを切り替えてreturn。)
|
20
|
+
更に、ごく簡単で十分ですのでスレッド切り替えの開発経験があると非常に力強いです。(これは割り込みの延長線にあり、仕組みは極簡単です。レジスタを退避して、スタックを切り替えてreturn。)
|
21
21
|
|
22
22
|
ラズパイも良いのですが、マルチ・コアですしlinuxが稼働してますし既に「複雑」なコンピュータに該当します。もし、アセンブラを多少なりとやってみようと言う気概があるのでしたら、[AVR](https://ja.wikipedia.org/wiki/Atmel_AVR)はお薦めです。個人負担できる価格帯ですし、自作派の方々が多数の情報を公開されています。C言語も無償のものがありました。たぶん今もあると思います。(私は業務で使ったことありますが、無償Cコンパイラでも十分でした。)
|
23
23
|
|