つながるワイヤレス通信機器の開発手法(15) ――プロトタイプを開発する

太田博之

tag: 組み込み

技術解説 2005年1月11日

● メモリ領域は三つに分割する

 図1(b)ではメモリを三つ(ROM1,ROM2,RAM)に分けているが,物理的にではなく機能面で分割した.ROM1は,モニタやブート・プログラムを書き込む領域である.ROM2は,モニタとブート・プログラム以外のOSやアプリケーション・プログラムを実装する領域である.RAMは,プログラムで使用される作業用メモリの領域である.

 デバッグの手法にもよるが,例えば,電源ON直後にROM1に格納されているプログラムが走り,そのあとROM2のプログラムを実行させるように設計する.そして,ROM1の領域には,ROM2のプログラムを書き換えるためのプログラムとUART通信用のプログラムを搭載しておく.こうすることで,ROM2のプログラムを容易にアップデートすることができる.

 なお,プログラムのダウンロードには,JTAGインターフェースもUARTも使われている.ハードウェアなどの制約事項から考えるとUARTを使用するほうが簡単だが,JTAGと比べて書き込める領域などに関する制限が多い.

 また,ROM1の領域は電源ON時に確定しておく必要がある.そのため,CPU内蔵ROMや外付けのマスクROM,またはフラッシュ・メモリのブート領域にROM1の領域のプログラムを書き込んでおく.フラッシュ・メモリのブート領域へは,ボードに実装する前にROMライタでプログラムを書き込むのが一般的である.

 図1(b)のランダム論理は,ユーザが設計する部分である.ASICの場合,図1(b)のような専用ポートはない.一方,FPGAの場合は,専用ポートと専用ハードウェアによって回路のコンフィグレーションや内部状態のモニタを行う.製品になるとダウンロード・ケーブルをつないで回路情報をダウンロードするわけにはいかないので,回路情報を書き込んだROMをボード上に搭載する.電源ON直後にその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日