- ICE使えない問題で、e2studio,CubeSuite+とかで状況が変わるか試してみるがいずれも芳しくない。
- もうこの方法はダメポなのか・・・
- gdb対応モニタとかがないかも含めて検討する必要ありなのかも
- いずれにしてもしばらく膠着状態、最悪断念か。
- あーーーーーーーーーーーーー
RedBootをRXに移植する
Saturday, June 14, 2014
今日の作業
Thursday, June 12, 2014
今日の作業
- static変数が初期化されていなかった件
- ROMにstatic変数が配置されていなかった。
- そのためその領域をRAMへコピーしても意味が無い状態になっていた。
- リンカに --ignore-lma を渡して該当領域へ初期値が配置されていることを確認した。
- しかし、ロード時にはRAM領域にも変数が配置されている。
- なんで????
- ターゲットのメモリが足りないためか、ソースデバッグ時に必要なシンボル名とかが足りない
- これは致命的
- ICE前提でやっているため、アセンブラレベルでのデバッグ/トレースに自信がまったくない。
- あーーーーーーーーーーーーーーーーーー 打ち止めか?
今日の作業
- 例外/割り込みベクタテーブルに手をつける。
- これに手をつけないと次に進めなさそうだから
- ちょっとずつ理解しているがH8のコードはトリッキーなことをしているように見える。これには意味があるのだろうか?
- H8/300Hだと jsr @addressがちょうど4バイトなのが羨ましい。
- 上記だけだと頭がうにになってしまうので、メインルーチンもトレースして進めることに
- どうやらstatic変数を初期化できていないらしいことが判明
- すごく読みにくいリンカースクリプトを読まなきゃならないはめに
- HEWでダウンロードしたらRAM領域にロードされてしまっているらしい。
H8のやつからあまりいじってないのに。それが悪いのか? - この状態で動かしたら起動メッセージとプロンプトが出る所まで来た。
ちょっとやる気が出てきた。 - コマンドプロンプトで入力できるところまで来た。
Wednesday, June 11, 2014
今日の作業
- システムコールで止まっているみたい、といったところはVirtual Vector Tableを呼び出すところだった。
- 解析したところ、そのアドレス設定が間違ったところ(メモリがない領域)に設定されていて”飛んでいる”だけだった。
- アドレス設定を行って処理は通るようになった。
- なにかしら表示をしたがっているらしいコードのところで止まるところまで来たのでシリアル関係の初期化/関数の移植に入りたい。
Tuesday, June 10, 2014
Monday, June 9, 2014
今日の作業
- コンパイル/リンクがとおり readboot.elf ができるところまでいった。
けどこれはram用?rom用どっち用? - ROM用っぽい。readelfで見たところ
- CYG_HAL_STARTUPのdefault_valueを {RAM}にすればRAM用になるみたい。
- コンパイルを”通すための”コメントアウトは最小限だとは思うけど
理解&移植しないといけないところ多数。 - ひとまずRAMにロード出来て先頭番地へ飛ぶところまではやらなきゃいけない。
resetベクタは最小限必要+rom固定ベクタ関係の扱いをちゃんとする。 - resetベクタの定義の仕方を思案中。rxのほうをごそっと持ってきてh8のやり方をやめるか、その逆か。
- Wikiが必要。資料をまとめながやらないと頭爆発。
- とりあえず作った。
- resetベクタはさておき(おいとくのかよ)少しずつスタートアップコードの移植に着手。
リセットしていちいち先頭アドレスにpcを移してステップ実行。
もうE1なしでの生活には戻れない…
Subscribe to:
Comments (Atom)