マイコン&FPGA開発の流れと開発ツール ―― 組み込みシステム開発の基礎知識(後編)

内座 浩文,大池弘泰

7.ROM化とマイコン開発ツール

 ROM化の工程では,コンパイラとリンカが変換した機械語のコードを,ターゲット・ボードのROMに書き込みます.

 最近は,フラッシュ・メモリを内蔵するマイコンが増えています.フラッシュ・メモリに,機械語のコードを書き込むためには,各マイコン専用のROMライタ(プログラマ)を使います.オンチップ・エミュレータの機能を利用して,統合開発環境からフラッシュ・メモリへの書き込みができるマイコンもあります.

 マイコンにフラッシュ・メモリが内蔵されていない場合は,写真5のようなROMライタを使用して外付けの書き換え可能なROMに機械語のコードを書き込みます.外付けROMの場合や,統合開発環境を使わずにフラッシュ・メモリへ書き込みをする場合には,機械語のコードをROMライタが読み込むことができる「Intel HEXフォーマット」や「Motorola Sレコード・フォーマット」という呼ばれる形式に変換する必要があります.


写真5 ROMライタの例

外付けのROMに,機械語のコードを書き込むために使用する.

 

 Intel HEXフォーマットやMotorola Sレコード・フォーマットは,バイナリ形式の機械語のコードをテキスト形式のASCIIコード2けたの16進数で表現するフォーマットです(リスト4).この変換のための専用のツールもありますが,リンカや統合開発環境に含まれる場合がほとんどです.

リスト4 インテルHEXフォーマットのデータの例

 


●ROM化の注意点

 ROM化では,ソフトウェア本体(機械語のコード)のROMの領域への配置(アドレス設定)とグローバル変数の初期化に注意が必要です.

 シミュレータを使用している場合は当然ですが,エミュレータを使用していても,デバッグ/テストで使用する環境は,ターゲット・ボードの動作環境とまったく同じではありません.また,エミュレータや評価ボードなどの制約で,外付けのROMやRAMがターゲット・ボードとは異なる配置になっている場合もあります.その結果,ROM化する際に分岐先がおかしくなることや,データの初期化などが漏れていても正常に動作してしまうことがあります.

 C言語などの高級言語を使用した上で,グローバル変数を極力使用しない設計をすることにより,このようなトラブルが発生する可能性を低くすることはできますが,回避できないトラブルもあります.アセンブリ言語で開発した場合は,特に注意が必要です.

 ROM化した後にトラブルが発生すると,原因の調査が難しくなります.設計,コーディング時のレビューや,コーディングのチェック・ツールの活用も大切です.可能ならば,ROM化した後の環境に近い環境で動作確認ができるエミュレータを利用して検証します.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日