※ ChatGPTを利用し、要約された質問です(原文:組み込み系C言語の学習法)
組み込み系C言語の学習法
このQ&Aのポイント
組み込み系C言語の学習法について、経験のない方にアドバイスをお願いします。
組み込みソフトを長年経験してきたが、C言語の知識が足りない部分があります。
特にポインタや構造体や配列についてアセンブラとの関係について知りたいです。
私は組み込みソフトを8年やってきました。
規模としては、白物家電をイメージしてもらうと良いです。
但し、電子レンジなど表示機能がない製品が近いかもしれません。
近いものでは、洗濯機や冷蔵庫といった感じでしょうか。
マイコンは、旧三菱の740ファミリのM38000系です。
ただソフト経験(アセンブラ)はあるものの、C言語の経験は皆無なのです。
ただし、if-else, switch-case, for, while, break, continue は充分理解できます。
何故かというと、旧三菱系のマイコンには構造化アセンブラと言って、
C言語もどきの記述ができるのです。上記文のみ特別に設けられていたのです。
それを使ってソフトを作っていたので上記分は理解できるのです。
しかし、ややこしいのがポインタや構造体や共有体や配列です。
同じことをアセンブラでもやっているはずなのです。
ポインタや構造体や共有体をアセンブラで書くとどうなるかが知りたいのです。
ここの部分が書いてある書籍がないのです。
例えば、ポインタや配列は、旧三菱系で言うとXレジスタやYレジスタを
使って行っていた作業と似てるのかなと推測できます。
同じ境遇の方で克服された方がいらっしゃいましたらアドバイスをお願いします。
また、アマゾンで下記の本を見つけました。
参考になるのでしょうか?
よろしくお願いします。
""組込み現場の「C」プログラミング基礎からわかる徹底入門""
補足
>C標準関数など一切使わずに書かれているC入門書がよい。ということですか? そうです。 例えば、サーミスタで温度を測定し、ファンモータの速度を可変するとかです。 もっと具体的言うと、サーミスタからの入力電圧をAD変換して、 その値を"AD値対温度の表"から温度に変換し、 DAポートからアナログ出力してファンモータの速度指令電圧を可変する。こういう例題を望んでいるのです。 それとか、マイコンとEEPROMとの通信データのやり取りとか。 通信データとかは複数BYTEあるので配列とか使ってやると思います。 この辺の例題があると喜びます。