« x-loaderのソースを眺めて | トップページ | 「成功は一日で捨て去れ」を読んで »

2012年5月20日 (日)

x-loaderのソースを眺めて(2)

前回に続いて、
x-loaderのソースを見てみたところを
適当に書いてみる。

ソースは、前回同様に、104SHのやつ。
ENTRYで指定してある
cpu/omap4/start.S の _start から読んでいく。

いきなりのb命令。
アセンブラガイドなるものによると、
分岐命令らしい。
私的には、ジャンプ命令のがわかりやすい。

ってことで、出鼻を挫かれて、
reset:からやり直し。

ldrとstrがリードとライトと見れば、
あとは適当に眺めていく。


r4は、scratchpad ってことなので、
よくわからないので、無視しておく。
OMAPの資料だと、
L4_WKUPのRAMらしいけど、何かのおまじないかな。

次に、r5の比較がたくさん。
r0の近くを読んでるから、
内部ROMから渡された値になるっぽい。
コメントを見る限り、
どのデバイスでブートされたかを
この辺でチェックしてるみたい。

そして、skip_typecheck は、
一部の比較スキップ処理なんだろうな。


その次から、
"bl cpu_init_crit"までの処理が
例外割り込み設定になるのかな。

_startの場所辺りから、
64バイトをコピーしている。

コピー先が
「OMAP4460 ES1.x TRM Revision Q」の
「27.4.2.2 RAM Memory Map」の
RAM Exception Vectors
(0x4030D000)と一緒なので、
なんとなく納得できそうな処理になる。

全部、do_hangに飛ぶらしい。
でも、"add r0,r0,#4"した分だけずれるような
違和感があるが、あってるのかな・・。


そして、"bl cpu_init_crit"は
ジャンプ命令なので、
やっと、概要のひとつ目の関数にたどりついた。

先が長そうだ・・。


リンク:
「Bootloader Project(翻訳)」on 電脳羊(Android Dream)
RealView® Compilation Tools アセンブラガイド(バージョン 4.0)

|

« x-loaderのソースを眺めて | トップページ | 「成功は一日で捨て去れ」を読んで »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/97274/45332851

この記事へのトラックバック一覧です: x-loaderのソースを眺めて(2):

« x-loaderのソースを眺めて | トップページ | 「成功は一日で捨て去れ」を読んで »