V-scale でも kozos を動かしたい ソフト編

組み込みOS自作本 の H8 から SH2 用に移植して使ってた kozos を、今度は RISC-V に移植したい。
Makefile だの、リンカスクリプトだの変更して make してみたけど、リンク時にシンボルがないって言われる。本によると、c言語で定義したシンボルは、リンカとかアセンブラからは頭に _ が付いて見えるとのことで、本のソースもそうなっていてそれで良い。
問題はその逆で、リンカスクリプトではシンボルは定義の時に _ を付けておいて、c から参照すると _ が取れるのかどうかと言う問題。本の中と、今まで使っていた SH2 用の環境では取れる。RISC-V 用だと _ が勝手に取れることはないみたいで、シンボルが未定義って文句言われた。リンカスクリプト上の定義から _ を外したら make できた。gcc のバージョンも違うから、そのせいかもしれないが。
で、FPGA で動かしてみたら、今度は puts が最初の1文字しか出さない模様。検証中……
[追記 DXステージストールと命令バスストール競合時のバグでした。ここ対策したら1行出したところでリセット起きている模様…
命令バスストールしても命令フェッチアドレスが更新されちゃうのが原因でした。バスストール周りのバグ多いですねぇ。ここ直したら、ちゃんとプロンプトが出るようになった。
でも、dump コマンドで size=-1 になりません。データ領域(初期値のある静的変数)の初期化がうまくいっていないんだろうなぁ。]

[PR]
トラックバックURL : http://tom01h.exblog.jp/tb/27228874
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2016-12-08 07:44 | PCとか | Trackback | Comments(0)