NRIロゴ2号
Google
 
Web narimatsu.net
トップページ
写真日記
リンク集

旧コンテンツ

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日


2000年6月8日 木曜日

基板は2枚組です。
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を逆アセンブルした コードは案外読みやすいです。 ^_^;

このへんの話もまとめなければ...