目次

テストデバッグTips

 Forthインタプリタを利用して、マイクロコンピュータに
 接続する様々なハードウエアを動かすとき、FlashROMの
 内容を書き換えてしまうと、書換え回数上限を超えるとか
 実機なしで動作を確認したい等の場面が出てきます。

 そんなことを考えているときに、次の結論に至りました。

 ターゲットのForthインタプリタを、他のForth処理系を
 使って、シミュレートすればよい。

 ワンチップマイコンの場合、様々な内蔵モジュールが
 用意されてます。レジスタで各モジュールの動作指定
 やパラメータを設定して使います。

 ワードvariableを利用して、レジスタ名を定義し
 そのレジスタからの読出し、レジスタへ書込みを
 すれば、動作をシミュレートしたことになる。

 こう考えると、Windows、UnixOSで用意されている
 Forth処理系を使い、ターゲットマイコンのForth
 インタプリタの動作をテスト、デバッグするとと
 いう結論が出てきます。

 Windows、LinuxをOSとするPCは、身近にあるので
 それらの上で、ターゲットマイコンのForthの動き
 を、確認すれば、大きな失敗はしない。

 この考えを適用して、ライントレーサのファーム
 ウエアをテスト、デバッグできました。

 また、OPアンプを利用したアナログコンピュータの
 動作を、Forthでモニタしたりもできます。



 他の処理系の動作をシミュレートする例は以下。



 Arduino基板にForthインタプリタを実装し
 ATmega328のポートDをすべて出力に設定し
 その後、MSBのみ入力とするのを論理演算
 で実現しています。

 テキストエディタで、ワードを入力し
 クリップボード経由でドロップすると
 ターゲットの処理系なしで、ワードの
 動作確認ができます。

 ATmega328のポートCを入力に設定して
 センサー出力値を取得する内容を確認
 するには、次のようにタイプ。



 I/Oの入出力を設定後、センサー値を取得で
 タイプミスをしていますが、スタック経由
 の処理で、間違いなくレジスタ格納値を
 取出していることがわかります。

 ForthはスタックとのFetchとStoreが基本動作に
 なるので、マイコン内蔵モジュール利用は、関係
 するレジスタとのFetchとStoreと等価。

 このカラクリがわかれば、データシートを読み
 こなして、必要なパラメータ設定や値参照を
 ワードで処理すればよいはず。

 テキストエディタを使うと、ワード操作や定義を
 保存できます。保存したワード操作や定義を呼び
 出して、ターゲットの処理系に格納して使うと
 テスト、デバッグが容易になります。



目次

inserted by FC2 system