- ICE使えない問題で、e2studio,CubeSuite+とかで状況が変わるか試してみるがいずれも芳しくない。
- もうこの方法はダメポなのか・・・
- gdb対応モニタとかがないかも含めて検討する必要ありなのかも
- いずれにしてもしばらく膠着状態、最悪断念か。
- あーーーーーーーーーーーーー
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なしでの生活には戻れない…
Sunday, June 8, 2014
今日の作業
ひとまず、特殊電子回路 究極のRX62Nボードベースで開始。
ソースを読めば読むほど終わる気がしなくなってきた…
- ソースツリーの生成が通ること(多少のウォーニング/エラーあり)
ecosconfig new ultimaterx62n redboot
ecosconfig tree - 移植作業一部
できるだけCにする。わかりやすいよう。あとでチューニング - hal_misc.c
- hal_lsbit_index,hal_msbit_index
- シリアル(SCI)のドライバ以外のウォーニングを消した。
- breakinstってやつが見つからなくってひとまずコメントしたけど
あとのこと考えるとチョー不安。
ソースを読めば読むほど終わる気がしなくなってきた…
ベースはやっぱりh8にします
コンパイルが通らないh8ですが、rxとはよく似ているため、やっぱりh8をベースと
します。
package/hal内のh8300をコピー、リネームしていくところから開始。
ベースはrxアーキテクチャとしてrx62、将来的にrx63を追加していく構造にする。
ドライバ関連は最小限、動き出したらethernetサポートなどを追加していく予定。
ethernetは独自ドライバになるため、ゼロから書かなきゃいけないのが憂鬱だけど。
します。
package/hal内のh8300をコピー、リネームしていくところから開始。
ベースはrxアーキテクチャとしてrx62、将来的にrx63を追加していく構造にする。
ドライバ関連は最小限、動き出したらethernetサポートなどを追加していく予定。
ethernetは独自ドライバになるため、ゼロから書かなきゃいけないのが憂鬱だけど。
-mh -mint32ではまる
CYGBLD_GLOBAL_CFLAGSから "-mh -mint32"を抜いているのに、makefile生成時に
復活してくる… なんで?
今のgccでは -mh -mint32は使えないからなしにしたいのに…
(rxは32bitだから何もなくても大丈夫なはず)
※環境変数ECOS_REPOSITORYが指す先がオリジナルのh8になってた…
復活してくる… なんで?
今のgccでは -mh -mint32は使えないからなしにしたいのに…
(rxは32bitだから何もなくても大丈夫なはず)
※環境変数ECOS_REPOSITORYが指す先がオリジナルのh8になってた…
Saturday, June 7, 2014
ここまででわかっていること。
ここまででわかっていること。
(順次増えるかもしれない)
(順次増えるかもしれない)
- redbootはecosというosの一部
- 現在のecosのバージョンは3.0
- ビルドにはC++コンパイラが必要
- h8でビルドしようと思ったがC++ライブラリ stdc++がビルドできないこと。
- いろいろgccのバージョンを変えてやってみたけど無理だった…
- h8からフォークして作業しようと思ったけどビルドできないのを
ベースにするのは心もとないなぁ…
とりあえずはじめます
redbootをrenesas rxシリーズに移植しようと思います。
技術的にできるかどうか、また自分のスキルでできるかどうかまったく白紙のため、
最終的にモノになるかどうかはわかりません。
技術的にできるかどうか、また自分のスキルでできるかどうかまったく白紙のため、
最終的にモノになるかどうかはわかりません。
Subscribe to:
Comments (Atom)