組み込みソフトウェア開発の第一歩を踏み出そう:H8で学ぶマイコン開発入門(1)(4/4 ページ)
組み込みソフトウェア開発には、ハードウェアからソフトウェアまで、広い知識が求められる。今回は最低限必要な知識を解説しよう。
H8/3048F-ONEの概要
H8マイコンは、ルネサステクノロジ社の8/16ビットマイコンです。H8マイコンには、8ビットCPUコアのH8/300シリーズと16ビットCPUコアのH8/300Hシリーズがあります。そのほかに、H8/300LやH8/300H Tinyなどもシリーズ展開されています。ここではH8/300H CPUをコアに持つ、H8/3048F-ONEの概要について解説します。
H8/3048F-ONEは、H8/300H CPUをコアにしたワンチップマイコン(MCU)です。内部は32ビット構成で、最大25MHzクロックをサポートしています。CPUコアの周辺に、フラッシュROMやRAM、I/Oポート、D/A変換機、A/D変換機、16ビットインテグレーテッドタイマユニット、シリアルインターフェイス、DMAコントローラ、割り込みコントローラなどが内蔵されています。
アドレス空間と動作モード
H8/300H CPUは、最大16Mbytesのリニアアドレス空間を持っています。
H8/3048F-ONEは、モード端子(MD2、MD1、MD0)の状態により、モード1〜7までの動作モードが選択できます。モード1〜6では、外部メモリや周辺デバイスをアクセスできます。バス幅コントロールレジスタ(ABWCR)を操作することで、バス幅はリセット時バス幅から変更できます。内蔵RAMは、システムコントロールレジスタを操作することで無効にできます。これにより、内蔵RAMがマッピングされているアドレス範囲は、外部アドレス空間として使用できるようになります。
レジスタ構成
H8/300H CPUは、32ビット長の汎用レジスタ8本、32ビット長のコントロールレジスタ(24ビットのプログラムカウンタと8ビットのコンディションコードレジスタ)を1本持っています。汎用レジスタは、32ビット×8本、16ビット×16本、8ビット×16本としても使用できます。汎用レジスタはすべて同じ機能を持っていますが、ER7レジスタはスタックポインタとして機能します。
内蔵周辺レジスタ
H8/3048F-ONEは、H8/300H CPUコアが持つレジスタに加えて、以下に示す周辺レジスタを内蔵しています。
- 16ビットインテグレーテッドタイマユニット:ITU×5チャネル
- プログラマブルタイミングパターンコントローラ:TPC
- ウォッチドッグタイマ:WDT×1チャネル
- シリアルコミュニケーションインターフェイス:SCI×2チャネル
- A/D変換器、D/A変換器
- I/Oポート:入出力端子70本、入力端子8本
- DMAコントローラ:DMAC×4チャネル
- リフレッシュコントローラ
各レジスタの用途や実際のプログラミングは、次回以降のプログラミング編で解説します。
I/Oポート
H8/3048F-ONEは、10本のI/Oポート(ポート1、2、3、4、5、6、8、9、A、B)と1本の入力専用ポート(ポート7)があります。各ポートはアドレスバス/データバスと入出力用の兼用端子になっています。各ポートをバス用として使うか入出力用として使うかは、動作モード(モード1〜7)により異なります(表1参照)。また、入出力用として使う場合、該当する端子を入力用にするか出力用にするかは、データディレクションレジスタ(DDR)により制御されます。
本連載で使用する機能
本連載で使用するボードには、各ポートにLEDやLCD、モータドライバなどのデバイスが接続されています。各デバイスは、適切な内蔵周辺レジスタを設定することで制御しています。詳細は、次回以降の各デバイス制御のところで解説します。
組み込みシステムの開発言語の主流は、C言語です。組み込みC言語の基本的な文法やプログラミングスタイルは、WindowsやLinuxなどが搭載されたPCで動作するプログラムと同じです。ただしC言語で組み込みシステムを記述する場合は、若干の注意事項が必要です。次回は、組み込み開発に必要なC言語の前提知識について解説します。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.