今、新人に組み込みプログラムの導入を教えてるけど、単純に言語レベルで考えた場合にも組み込みって難しいね。
新人に C言語を教えるとポインタと構造体でつまづくけど、最低ポインタは必須。
あと今回は CPU に H8 を使っているので、統合環境 HEW が自動生成する CPU のメモリマップには
- I/Oの共用体に、
- バイトデータと ビットデータの構造体(ビットフィールド)が定義されていて、
- それが、volatile ポインタ変数として、
- アドレス直代入してる
こんなカンジ?
union io { unsigned char BYTE; struct { unsigned char B7 : 1; unsigned char B6 : 1; unsigned char B5 : 1; unsigned char B4 : 1; unsigned char B3 : 1; unsigned char B2 : 1; unsigned char B1 : 1; unsigned char B0 : 1; } BIT; }; #define IO (*(volatile union io *)0xABCDEF)
これが理解できないと、LED すら光らせることができない。
果たして彼らはこれを理解できるのか(笑)
あとは、
あ〜、盛りだくさん(笑)