PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック・前編 ―― 無線インターネット・アクセスを組み込みシステム開発の手駒に
● ダイレクト実行はデバッグ時に有用
SilentCはファイル内の関数を実行しますが,昔のBASICと同じようにコマンド・ラインからダイレクトに実行することも可能です.試しに以下のコマンドを入力してみてください.?コマンドは,式の値を10進数で表示します(??なら16進数で表示).
?2+2/2
3
OK
C言語の仕様では,{}で囲まれたブロックは一つの実行文として扱われます.以下の例は,{}で囲まれたブロックの内部でローカル変数を宣言してforループの変数として使用しています.
{int i;for(i=0;i<40;i++)PrNum(i);}
0123456789101112131415161718192021222324252627282930313233343536373839
OK
プログラムが無限ループに入っても,[CTRL]+[C]のキー入力で中断できます.[CTRL]+[C]で中断するとブレーク・モードに入ります.
ブレーク・モードでは編集コマンドが使用できません.使えるコマンドはabort,cont,type,?コマンドです.abortでプログラムの実行を完全に中断して編集モードに戻ります.contは実行を再開します.
● CodeWarriorを使ったクロス開発も可能
SilentCはインタープリタ型の言語処理系なので,ネイティブなプログラムと比較すると,どうしても実行速度が遅いという欠点があります.また,実行時に言語処理系がある程度のRAMを必要とするので,SilentCの変数として利用できるRAMの容量が限られてしまうという問題も発生します.本機を利用して本格的なソフトウェアを開発したい場合は,クロス開発環境を利用することも可能です.
Freescale Semiconductor社の傘下の開発ツール・ベンダであるMetro-werks社から,CodeWarriorと呼ばれる統合開発環境(IDE)が無料で提供されています.Freescale Semiconductor社のWebサイトからIDEをダウンロードすることで,C/C++言語による開発が可能です.Silent MoonやSilentCなど,本機のファームウェアも,Code Warriorを利用してC言語で記述されています.
IDEで開発したプログラムは,Ethernet経由で本機に転送してリセットして動作させることもできますが,このままではデバッグがやりにくいと思います.デバッグを効率化したい場合は,専用のデバッガを購入した方が良いでしょう.
次回は,本機を利用して前面ボタンを押せば携帯電話にメールを送信するプログラムを作成する予定です.
なかもと・しんいち
(有)サイレントシステム エクゼクティブエンジニア