ブログ@kaorun55

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

組み込み

最近、組み込み関連の調べ物をしてて調べたり話しあったりするうちに、いろいろと自分なりの気づきが出てきたのでまとめとく。


組み込みというと PowerPC とか ARM に Linux を積んで作る、ってことに違和感があって社内の人と話してたところ自分なりの落とし所があった。
結論としては MMU があるかないか。

  • MMU がない(または無効)の環境なら組み込み
  • MMU がある環境なら組み込みではない
    • もちろん、OSのポーティングは組み込み


MMU 付きの環境でLinux を動かしたら、基本的にPC Linux で動かしたものをクロスコンパイルすれば(H/W依存部分以外は)動くので、組み込みというには違和感がある。
やっぱり、物理メモリ上でプログラムを動かすのが組み込みだよね。


これを書きながら、それを言ったらOS載せたら組み込みから外れてくる気がしてきた。
やっぱり組み込みを体感するならOSレスの環境かな。


スクリプトVM上で走るプログラムもいいんだけど、

  • mainの前や後の動きを知ったり、
  • 割り込み処理を重くして固まったり、
  • タスクディスパッチの仕組みを知って感動したり、
  • タスクスのタックオーバーフローで別タスクをぶっ壊したり、
  • 引数にconstつけるとROMに書かれるとか言われたり、

プログラムを動かしてる実感がある組み込みって楽しいんだよね
#と、いいつつ、今年の目標は Javaスクリプト言語でアプリを作れるようにすることなんだけどねー(笑)

最後に

今年はWindowsドライバ&Windowsサービス&Windowsアプリ(全部C or C++)の仕事があるので、これでどこまでテストドリブンができるのか試してみたい。
アプリとサービスはまぁいいとして、Windows ドライバで TDD または単体テストの実績、知識があったら教えて欲しいです。。。