かみやんの技術者ブログ

主にプログラムの話です

マイコンプログラミング初挑戦

無事、ハンダゴテがとどいたのでAKI-H8/3069F-LANを実装(はんだ付け)。2時間ぐらいか。

まず、USB-シリアル変換ケーブルのドライバをインストール(最近のPCはRS-232Cポートないからね)。
COM8が割り当てられた。

次に、TOPPERS教材に付属モニタをまずROMに書き込む。USBシリアルケーブルでマイコンとPCをつなぐ。マイコンのモードをROM書き込みモードにして電源ON、AKI-H8のCD-ROMについていたh8write.exeでモニタを転送。

む。なにも変化がない。よく考えたらCOMポート指定がしてない。COM8を指定して再度転送。転送中みたいなメッセージがでる。。が途中で止まる。もう一回やってみたところ、転送成功。
なんかノイズかなんかで転送エラーだったのだろうか。転送プロトコルが単純なのでエラー補正や再送がないのかもしれない。とりあえずモニタ書き込みOK。

次は、モニタ動作確認。TeraTermでCOM8に接続。マイコンを実行モードにして電源ON。モニタ起動メッセージがでるはずが、文字化け。。
いろいろチェックしたところ、TeraTermの通信速度を386kbpsにセットしないといけなかったらしい。起動時メッセージが無事に表示。

次。

AKI-H8のCD-ROMに入っていたCygwinをインストール。クロスコンパイラがインストールされた。
TOPPERS教材のタイマーOSなし版、OSあり版をビルド。
マイコンをリセットして、モニタのコマンドラインプロンプトが表示されたところでld(ロード)コマンド。TeraTermのファイル送信コマンドでプログラムを転送。goコマンドで実行。

が、LEDが光るサンプルのはずが光らず。。

基板実装でミスをしたのかな〜とチェック。結局、LCD-LED-DIPというピンヘッダに12個のジャンパピンをさす必要があったらしい。AKIのキットは玄人向けでわかりにくい。。

なんとか実行成功。ばんざーい。

ちなみにOSなし版が6kのプログラム。同じ内容がOSあり版だと66kbyteぐらい。つまりOSが60kぐらい。
OSなしでマイコンプログラムをしているひとからすると60kもOSでくうなんてでかすぎ!って感じでしょうね。
H8のROMは大抵8k〜32kぐらい、RAMはその半分程度なので60kなんてROMに乗らないし、RAMにも乗らない。H8/3069はROMが512kなのでROMにも乗るし、RAMは16kぐらいしかないけど、AKI-H8/3069ではDRAMが追加されているので2Mある。

マイコンプログラミングを体験してみてわかったこと。

  • マイコンの起動ははえぇぇ。リセットボタンした瞬間にモニタなり、OSなりが起動してます。
  • 開発中はRAM上のプログラムで開発なので、マイコンを起動(リセット)する度に、PCからシリアルケーブルでプログラムやデータを転送しないと動かない。
  • TOPPERSを使えば、デバッグ出力をTeraTermごしにPCに表示できる。デバッグログ出力用タスク(タスクは、PCのOSでいうプロセスみたいなもの)があるので便利。

とりあえず、はんだで基板実装を中学生ぶりぐらいにしたけど1カ所もミスはなかったようだ。ほっ。