ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

組み込みプログラム

今、新人に組み込みプログラムの導入を教えてるけど、単純に言語レベルで考えた場合にも組み込みって難しいね。


新人に 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 すら光らせることができない。
果たして彼らはこれを理解できるのか(笑)



あとは、

  • CPU の使いかた
  • I/O
  • レジスタ
  • 割り込み
  • OS のないプログラム
  • OS のあるプログラム
  • RTOS


あ〜、盛りだくさん(笑)