統合開発ツールで"ラクラク"マイコン開発 <ARM編> ―― コードを自動生成させればすぐに動作する
tag: 組み込み ディジタル・デザイン
技術解説 2010年4月22日
●マイコンの起動方法を知る
マイコンが起動する手順を図3に示します.マイコンの仕様に合わせて,適切な順序で必要な処理を行うためのコードを記述します.
図3 マイコンを起動する手順
マイコンによって異なるが,およそここで示した流れになる.
(1)リセット例外ベクタ
マイコンは,電源が投入されると,決められたアドレスから処理を始めます.例えばARMマイコンの場合,割り込みベクタのアドレスに分岐します(図4).そして,割り込みベクタに書き込まれている命令を実行します.
図4 メモリ配置
ARMマイコンの例を示す.
(2)初期設定コード
マイコンを初期設定するコードでは,例えば,クロック信号をマイコン内でどのように使うか,割り込みを使うかどうか,周辺機能をどのように使うかといった初期設定を行います.
(3)メモリ関連の初期化
メモリ関連の初期化では,C言語コードを実行するための環境設定を行います.スタック・ポインタを設定し,ヒープ領域を初期化します.
(4)C言語のmain関数へ分岐
すべての設定が終わったら,C言語のmain関数を呼び出します.
ここまでの処理が記述されたコードを,スタートアップ・ルーチンといいます.スタートアップ・ルーチンは,マイコンのドキュメントの内容を正確に理解して,間違いのないように記述しなければなりませんから,作成には手間がかかります.
●周辺機能の制御方法を知る
スタートアップ・ルーチンでC言語コードがきちんと呼び出されれば,それ以降はアプリケーションのコードを実行するだけになります. アプリケーション・コード中で,周辺機能を制御するときには,周辺機能のレジスタの読み書きを行うことになります.この操作法を,ユーザーズ・マニュアルなどでよく理解する必要があります.
●メモリ・マップを知る
コーディングの際には,図4で示したようなアドレスの定義をあらかじめまとめておくと,効率が上がります.