スパイス  組み込み制御装置の受注製作

モニタプログラムを移植する
平成26年3月30日

はじめに

Cコンパイラやモニタプログラムの移植作業が必要になるのは汎用CPUをコアにしたマイコンに限られます。i8051やPICのような完全な組み込みCPU用では必要はありません。
 まず、難易度の低いモニタプログラムの製作から入ります。本来の手順は先にCコンパイラが必要ですので、Cコンパイラの移植から入るべきですが、こちらは非常に面倒な手順を踏むことになります。このため市販製品で組み込み向けのCコンパイラがあるものとして考えます。
  仕様を決める
 最初に行うことは、このプログラムに求める機能を決めることです。はじめは最小限の機能のみを実装することを考えます。機能追加はその後でこのプログラムを使ってデバッグしていけばいい。機能的に最小限となると
1.プログラムを外部から通信IFを介してRAM上に読み込む
2.RAM上の特定アドレスに制御を移す(実行する)
の二つさえあればいい。
 もう少し具体的に考えると通信IFはデータの送り元となるPCと接続が容易なRS-232CかUSBが現実的な候補になります。制御プログラムの複雑さは圧倒的にRS-232Cが単純ですのでRS-232Cを選択します。次に通信手順(プロトコール)の選択では、PC側の通信プログラムは新規に作りたくないので既存のWindowsプログラムで対応できるものに合わせた方が楽が出来ます。シリアル通信ではハイパーターミナルがWindowsの標準でした。「でした」と書いたのは最近のWindowsからは削除されているためです。まだ別途ダウンロードしてインストールすれば使えるようです。代替のフリーソフトとしてはTeraTermなどがあります。ハイパーターミナルの通信仕様を調べてみるとXMODEMという仕様でテキストファイルの送信が行えます。TaraTermではもっと多くのプロトコールから選択して使用できます。従って通信手順はXMODEMを採用します。

(平成26年4月1日追記)
 上記は誤りでした。既に他CPUで使用中のモニタプログラムのプログラムリストを見ると、XMODEMを使った通信方式はなくテキストファイルを転送する仕様でプログラムしてあります。このように仕様を変更した理由は、XMODEMをはじめとしたプロトコール通信では、通信を行うたびにファイル名とそのプロトコールの両方を画面上で選択する必要があり面倒なためです。テキストファイルの通信はファイル名のみを指定すれば良いので、その分操作の手間が少なくて済みます。プログラムの転送は回数をこなすので、このような配慮は重要です。(追記ここまで)

なお、送信するプログラムのデータ書式はCコンパイラに依存しますが、大半はインテルHEXフォーマットかモトローラSフォーマット(いずれもテキストデータ)を出力できます。
 RAM上のアドレスに制御を移すのはモニタプログラム単独の機能であり、特に検討すべき項目も見当たりません。
ページ先頭へ 前へ 次へ ページ末尾へ