トップページ
写真日記
リンク集
旧コンテンツ
News,(
US,
UK)
はてなアンテナ
wikipedia
kick4wiki
kick4bbs
ジャパンネット銀行
ピンポイント天気
postMap
G-Tools
Kumaduino
うだうだ日記Index
2011 1 2 3 4 5 2010 1 2 3 4 5 6 7 8 9 10 11 12 2009 1 2 3 4 5 6 7 8 9 10 11 12 2008 1 2 3 4 5 6 7 8 9 10 11 12 2007 1 2 3 4 5 6 7 8 9 10 11 12 2006 1 2 3 4 5 6 7 8 9 10 11 12 2005 1 2 3 4 5 6 7 8 9 10 11 12 2004 1 2 3 4 5 6 7 8 9 10 11 12 2003 1 2 3 4 5 6 7 8 9 10 11 12 2002 1 2 3 4 5 6 7 8 9 10 11 12 2001 1 2 3 4 5 6 7 8 9 10 11 12 2000 1 2 3 4 5 6 7 8 9 10 11 12
|
うだうだ日記 2000年 6月 8日

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()等の可変個引数を持つ関数をうまく呼び出せないよ
うです。
いやー、もうライブラリーが悪いんだか、ハードが悪いんだかわから
なくて大変でした。 最後は Cのプログラムと関数毎に逆アサンブル
を見比べて調べていました。なんか懐かしいというか新鮮でした。
ちなみに、逆アセンブルは objdumpの -D/-dオプションや、gdbの
disassコマンド,x/iコマンドなどでできます。H8を逆アセンブルした
コードは案外読みやすいです。 ^_^;
このへんの話もまとめなければ...
|
|