H8/300H版uClinuxのブートローダとして、
RedBootを使ってみよう、
というページです。
当初の予定では、H8/300Hに移植されているeCosを探してきて、RedBootを動かしておしまい。
というお手軽コースのつもりだったんですが…。
ちなみに、RedBootを動かす方がメインなので、eCosの方にはちょっと手抜き気味です。
eCos Ver2.0-Alphaが公開されました。H8/300サポートが入っています。
ということで、パッチの公開をしばらく中止します(意味がないので)。
間に合わなかったパッチをv2.0に対応させたので、取り込まれるまで公開します。
最新版がほしい人は、ecos-h8 projectへ、飛んでください。
現状は、かなり人柱版です。
いろいろとあやしいので、何か問題が起きた時に自力で解決できる自信の無い人は
手を出さない方が無難です。
だいぶましになりました、コンパイル環境以外は…。
ようやくbinutils/gcc/gdbのh8300-elf対応版がそろいました。あとは、eCos Ver2.0リリースかな。
秋月の3068ボードで動くようになりました。ただし、メモリ増設が必須です。
内蔵メモリは、ワークで使い果たしてしまいました。
もう少し減らせそうなので、気力のある人は頑張ってみてください。
ちなみにネットワークはまだ動いてません。
早く対応させたいと思っていますが…。
ネットワークも使えるようになりました。ダウンロードが早いので快適です。
動いた記念にコンパイル済みmotを置いておきます。
自分用のバックアップをかねて…
RedBootを動かすことがメインなので、使っていない機能はほとんどテストしていません。
eCosのサンプルプログラムは動いているので、
eCosのHALとして最低限のレベルには達していると思いますが。
確認できている(&直すつもりは無い)問題点として、libmが使えません。
修正は簡単なんですが、テストが面倒・RedBootで使っていない等の理由により
手をつけていません。必要な人は自力で直してください。
h8300-hitachi-elfに対応したgccとbinutilsが必要です。
h8300-hitachi-hmsでは、コンパイルできません。
正確にはCOFFの制限に引っかかって、リンクエラーになります。
少しがんばってみましたが、アーキテクチャ依存部分の変更だけでは
どうやっても通らなかったのであきらめました。ごめんなさい。
がんばってみようという人がいたら連絡を下さい。
必要な情報を提供します。
話がそれましたが、現在正式にリリースされている最新のgcc-3.0.4
/binutils-2.11.2でも
ELFには対応していません。次のバージョンからサポートされることを期待しましょう。
ということで、現在のところ正式リリースのバージョンは使えないので
snapshotを使うかCVSから持ってきてください。
2002/03/28追記
binutils-2.12がリリースされています。当然ELF対応しています。
2002/05/20追記
gcc-3.1がリリースされています。
スナップショットの追っかけから開放されました。
h8300-hitachi-elf-gcc (GCC) 3.1 GNU assembler 2.12 GNU ld version 2.12です。 ただ、gccは以下のような問題があるためeCosをコンパイルできません。
これ以外にも3.1の仕様変更?がありますが、gcc側の対応が必要なのはこの4
点です(直ってないのが2個)。
最後の問題がgccの仕様変更であれば、影響が大きいので何とかしてもらいたいと思いますが…。
とか書いておいたら直りました。バグレポートだそうと思ったのに。
危なそうなのはパッチを出しました。3.1リリースまでに改善されることを
期待しましょう。
直りませんでした(T_T)。そのうち直ることに期待しましょう。
long longはeCosの正式サポートになったら考えます。
この問題を修正するための、パッチ
を作成したので、当ててからELFのgccを作ってください。
binutilsもなんとなくあやしい所がありますが、
バイナリは出来るので気にしないことにしています。
正式版はまだ検証してません。今のところよさそうですが、
リンク時に解決出来ないシンボルがあると、変なエラーを出してくれます。
実害は無いので、気にしないことにします。
コンパイル方法は変わっていないので、
ターゲットをh8300-hitachi-elfと指定して、
H8のクロスコンパイラとしてコンパイルしてください。
CVSから最新ソースを持ってきて、
H8パッチを当ててください。
Ver2.0-Alpha版で、パッチが取り込まれました(少し古いけど)。
コンフィグレーション・ビルド方法は、eCosとRedBootのドキュメントを参照してください。
私も、他人に説明できるほど理解してません。
CPUとしてh8300h、ターゲットとしてh8300h_simが追加されます。
ターゲットの名前を見れば分かりますが、例によってシミュレーター上での動作しか
確認していません。
実機で動かす場合は、ターゲットを追加する必要があります。
Networkが使いたい&gdbでデバッグしたいという理由でRedBootをのせたので、 最初の二つは(いや、三つか)とっとと片付けたいと思っています。 残りは…あまり期待しないで下さい。あくまでRedBootを動かすのがメインの目的なので。
サポートCPUの追加は…H8Sは時間を見てを入れるつもりですが、
H8/300は需要が無ければ私のほうでは入れません。
(ネタとしてはこっちの方が面白いんですが、
メモリが足りるかどうかもわからないし)。
H8Tinyも入れる予定は今のところありません。
(300Hコアなので、H8/300よりは希望が持てますが)
ターゲットの方は、3068ボードのサポートは間違いなくやりますが、
それ以外はどうするか決めてません。手に入ったらサポートすると思いますが。
| 2002年 3月24日 | 公開 |
| 2002年 3月25日 | 英語ページ公開。ecosパッチ更新。 |
| 2002年 3月27日 | gccパッチ更新 |
| 2002年 3月28日 | gccパッチ更新。 binutils-2.12の記述を追加。 eCosパッチ更新。gccの修正に追随しました。 |
| 2002年 4月10日 | eCosパッチ更新。 それ以外のところは追いついていません。 |
| 2002年 4月11日 | eCosパッチ更新。昨日のは腐ってます。 ごめんなさい |
| 2002年 4月19日 | eCosパッチ更新。ネットワークに対応しました。 コンパイル済みバイナリを追加しました。 |
| 2002年 4月26日 | eCosパッチ更新。SCIドライバが入ってませんでした。 諸般の事情により、それ以外の変更は入れてません。 sourceforge.jpのCVSの全部置いてあるので、 ほしい人はそこからどうぞ |
| 2002年 5月 9日 | eCosパッチ更新。WDTドライバ追加。GDB stub修正 当初の予定はほぼ完了しました。 |
| 2002年 5月20日 | GCC-3.1関係の記述を追加。 eCos 2.0が出るまで更新しなくなるかも。 |
| 2002年 5月21日 | GCC-3.1パッチが壊れていたので差し替え。 今度こそ、eCos 2.0が出るまで更新しなくなるかも。 前にも同じことをやったような気がしないでもない |
| 2002年 5月23日 | ↑とか言ってたら、2.0が出ました(Alpha版だけど)
少し前(たぶん4/26)までのパッチが取り込まれています。 ついでに少しいじりたいので、5/9の修正分の パッチは少し待ってください。 |
| 2002年 6月 2日 | お待たせしました。5/9分のパッチを2.0に対応させました。
マージされるまでの期間限定です。 マージされたら、予定通りパッチの公開をやめます。 |