2020年5月30日の日記を表示中
2020年 5月30日 (土)
■基板
CPS3のBIOSにデコード機能&チェックサム調整機能を追加するために、GNUのSH向けのクロス開発環境を導入してみました。ARM Linux向けのクロス開発とかはたまにやっていましたが、OSなしの環境で動かす素のバイナリ開発となると、ゲームボーイアドバンス向けのプログラムを書いたりしていた頃以来ですかね・・・。当然、それそのものの情報はないんですが、ググりまくって断片的な情報を集め、繋ぎ合わせて、何とかそれっぽいフローを構築することに成功。何となくCで書いたプログラムが、指定したアドレスに貼り付けて動くバイナリになっているように見えます。
で、早速、Cで書いたデコードルーチンをコンパイルしてみたんですが、 なぜかここで __ashlsi3みたいな、libgccに含まれていると思われる謎のローテート関数がリンクされるようになってしまいハマりました。そんな高度そうなものなんか使わずに動く処理のはずなのになぜ・・・と思ったら、コードの書き方が悪いせいで、任意ビット幅のローテート処理ができる関数としてコンパイルされているのが原因でした。使うのは2bitの左ローテートと4bitの左ローテートだけなので、それ専用の関数を作ったら、余計なものがリンクされることはなくなり期待通りのバイナリに。ふぅー。
あ、そういえば今日、Amazonで買ったSH-2 (HD6417604SF28) が届きました。
2個買ったつもりだったんですが、合わせ買いのために一旦キャンセルしたつもりになっていたのがキャンセルできていなくて、都合4個もw。まあ、きっとあったらあったで何かの役に立つはずですねw
2020年5月30日の日記を表示中
[コメントを書く]