組み込みソフトにおけるハードウェアの知識
組み込みソフトウェアを作成する場合に必要なハードウェアの知識について、組み込みLinuxにデバイスドライバを実装する方法に添って説明しようと思います。
組み込みLinuxも、ハードウェアも説明し出すと際限がないので、簡単な事項から何回かに分けて説明したいと思います。
まず、組み込みソフトウェアについて簡単におさらいします。身近な物でもテレビ、エアコン、洗濯機、シーリングライト…、枚挙にいとまがないほど、機能の違いはありますが、ほぼ全ての電化製品に搭載されていると言っても過言ではありません。
昔(※1)はマイコンが高価だったため、トランジスタ(※2)等の電子部品を組み合わせて純ハードウェアで構成されていましたが、マイコンが安価になり、マイコンを使用した組み込みモジュールが多用されるようになりました。この組み込みモジュールに搭載するソフトウェアを組み込みソフトウェアと呼んでいます。
※1:今後「昔」と言えば40年ほど前だと思ってください。
※2:ここでは詳しい説明は省きますが、スイッチのようなもので、現在のICの根幹をなす物です。今後、機会があれば説明します。
本題に入る前に、以上の範囲にソフトウェア技術者にとって聞きなれない単語が出てきたかもしれませんので、補足しておきます。本ブロクを読むのに必要な単語の説明だと思ってもらって構いません。電子工作などをされる方には釈迦に説法なので、読み飛ばして頂いて構いません。今後も、組み込みソフトウェアに必要なハードウェアの基礎知識が出てきた場合にその都度補足します。
マイコン
CPUを中心に各種I/O機能を一つのパッケージに収めた物を言います。
昔は半導体の集積技術が十分でなかったため、CPU=マイコンと呼んでいましたが、現在ではCPU、メモリ、DMA、UART、Ether、USB、GPIO等のコントローラが一つのマイコンに集積されています。