AKI-H8のクロス開発環境
![]() AKI-H8を組み込んだボード |
最近、自宅では AKI-H8のクロス開発環境と格闘しています。Linux上のgccでクロスコンパイルしたコードを、gdbでリモートデバッグするという夢のような環境ですが、いろいろ苦労しています。
以下はその苦労のリスト- プログラムが大きくなるとロードできない。 sprintf()とかをリンクするとプログラムが突然大きくなります。そうすると何故かロードができません。kermit等でいろいろ試して見たら、速度の問題でした。 増設メモリを3クロックサイクルにしているのが問題なのかもしれません。kermitでは、改行後にディレイを少しいれてやることで解決しました。 gdbでは、set hashとして、load時に#を表示させることで、若干ディレイが入るようでうまくいきました。
- sprintf()がうまく動かない。
LCDに表示させる文字列を作るのにsprintf関数を使用していたのですが、うまくうごきません。gdbで動作を追いかけて見ると 引数がわたっていないようです。 で、ふとプロトタイプ宣言していないことに気が付き、
#include <stdio.h>
を追加してやったら動くようになりました。 H8用のgccでは、関数の引数の1番目と2番目がレジスタ渡し(ER0とER1を使用)になっており、プロトタイプ宣言無しではsprintf()等の可変個引数を持つ関数をうまく呼び出せないようです。
最近のコメント