組込みエンジニアのスキルセット
#砂肝コラム
#TODO
組込みソフトウェアを開発するエンジニアとして、最低限必要な技術を列挙する
組込みソフトウェア
リアルタイムOS
タスクと割り込み
Startup / Shutdown
エントリポイント
ネットワーク管理
各種フック関数
他OS
Windows
Linuxカーネル
独自OS
ハードウェアの知識
そのハードウェアで何ができるのか、は知っておきたい
詳細を覚えなくてよい
デバイスドライバ
ポート
インタフェース
レジスタ
リンカ
メモリセクション
リンカースクリプト
デバッガー
JTAG
パフォーマンス改善
フットプリント
プログラミング言語
C言語
重要な技術だが、それさえ知っていればいいかというと、もちろんそんなことはない。
ひとくちにC言語といっても何ができればよいのか。
例:関数ポインタが抵抗なく読めればOK
Rust
コンパイラ
ソフトウェア開発全般
テスト
単体テスト
システムテスト
テスト用にスクリプト言語の1つくらいは知っておきたい
バージョン管理の概念
SVN
git
ドメインの知識
要求仕様を理解するためには、そのソフトウェアがどのように使われるのか、を知る必要がある
顧客は誰?
BtoB
BtoBtoC
BtoC
他には?
→組込みソフトウェア