組み込みソフト開発101

前置き

  • 本稿では、組み込みソフト開発の必須知識をつらつらと書きます
  • キャリア3年未満のプログラマーを対象にした人材育成のためのテキストを書くような感覚です
  • 既にC言語文法は習得済みで、Hello,World!くらいは自分で書いて動かしたことがある人を前提にします
  • 現場での経験上、若手に教える機会が多かったトピックを取り上げますが、網羅的、体系的に整理したわけではないです

組み込みソフトに特化?

本稿の内容の多くは、組み込み以外のソフト開発にも当てはまると思います。 組み込みソフト開発に欠かせない知識の中でも最重要なのは、プログラムが動く仕組みでしょう。 その思いから、本稿ではハードウェアやOSに関するトピックを最初に持ってきました。タイトルに「組み込みソフト」と入れたのもそのためです。

カテゴリとトピック

本稿で取り上げるトピックは、6つのカテゴリに分かれます。

  1. ハードウェア
    • コンピュータの構成要素
    • ROM/RAMへのアクセス
    • プログラム実行の原理
    • レジスタ
    • メモリマップ
    • 割り込みベクタテーブル
    • スタック、SPレジスタ、関数呼び出し
  2. OS
    • タスクとは
    • マルチタスク、マルチスレッド
    • スケジューリング
    • タスクを切り替える
    • スケジューリングの例
    • タスクの状態
    • マルチプロセスと仮想アドレス
  3. 処理系
    • 処理系・クロス環境
    • プリプロセッサ
    • コンパイラ
    • ライブラリアン、アーカイバ
    • リンカ
    • C標準ライブラリ(libc)
  4. C言語
    • 寿命とスコープ
    • データサイズ
    • ビットフィールド
    • リンケージ
  5. 設計
    • ソフトウェアレイヤ
    • One Fact, One Place
    • 再帰呼び出し
    • マルチスレッド
  6. テストとデバッグ
    • テスト分類
    • テスト・デバッグ環境
    • デバッグの手がかり
  7. 読みやすいコード(2012-11-14追記)

あとがき

一応、ひと通り書き終えました(2011-05-19)。構成が破綻しかけている部分もあるし、図も不足気味です。内容が浅すぎて意義を持たない項もあります。おいおい加筆修正していきたいと思います。

おまけ

読みやすいコード」というテーマで記事を追加しました(2012-11-14)。組み込みソフトに限らず、ソフト開発全般を対象にしてます。

Last modified:2012/11/14 12:49:19
Keyword(s):
References:[SideMenu]
This page is frozen.