Armadilloフォーラム

hermitのカスタマイズについて

ma2013

2014年4月18日 18時48分

MCSのmaです。
いつもお世話になっております。

最近,Armadillo840用のブートロードのソースコードを調べてみましたが,基本的な部分も理解できませんでした。
ご存知の方いれば,次のことを教えていただきたいです。
1.電源投入からカーネルをメモリへコピーまでの関連ソースファイル。
2.最初に実行する関数またはソースコードはどちらでしょうか?
3.ハードの初期化に関するソースコードの場所。

弊社では,ブートロードでハードの初期化(例えばLCDコントローラ)や汎用性処理の削除を行いたいと思っております。
簡単すぎな問題だという心配がありますが,ブートロードを開発した経験がないで,とても困っております。
どうぞよろしくお願いいたします。

コメント

y.nakamura

2014年4月19日 17時06分

中村です。

> 3.ハードの初期化に関するソースコードの場所。
> 弊社では,ブートロードでハードの初期化(例えばLCDコントローラ)や汎用性処理の削除を行いたいと思っております。

hermit-at-3.2.4/src/target/armadillo8x0/board-armadillo840.c

static void armadillo840_init(void)
だと思いますよ。

--
なかむら

at_yashi

2014年4月24日 15時02分

> 1. 電源投入からカーネルをメモリへコピーまでの関連ソースファイル。

src/target/ 以下です。

電源投入時は、src/target/armadillo8x0/*.Sからはじまります。
その後 C の世界の準備ができたら src/target/core/entry.c
hmain() が呼ばれます。

hermit の処理に関しては、↓ も参考にしてください。

http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-1_ja-2…

> 2. 最初に実行する関数またはソースコードはどちらでしょうか?

boot.S の中にある、_start: からのコードです。これは、
linker script "loader.lds.flash" を見ると分ります。

> 3. ハードの初期化に関するソースコードの場所。

ボード専用のコードは、なかむらさんの通り
src/target/$BOARD/ 以下にあります。ボードに異存しないものは、
src/tar/get/driver 以下にあります。

ma2013

2014年4月25日 9時56分

MCSのmaです。

いろいろ参考になるコメントありがとうございます。