ma2013
2014年4月18日 18時48分
MCSのmaです。
いつもお世話になっております。
最近,Armadillo840用のブートロードのソースコードを調べてみましたが,基本的な部分も理解できませんでした。
ご存知の方いれば,次のことを教えていただきたいです。
1.電源投入からカーネルをメモリへコピーまでの関連ソースファイル。
2.最初に実行する関数またはソースコードはどちらでしょうか?
3.ハードの初期化に関するソースコードの場所。
弊社では,ブートロードでハードの初期化(例えばLCDコントローラ)や汎用性処理の削除を行いたいと思っております。
簡単すぎな問題だという心配がありますが,ブートロードを開発した経験がないで,とても困っております。
どうぞよろしくお願いいたします。
コメント
at_yashi
> 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
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)
だと思いますよ。
--
なかむら