BBB(am335x) のROM exception vectorの中身を調べる
■ROM MAP 以下TIのam335xの技術リファレンスマニュアルを参照。 ---------------------- 0x20000 | ROM Exc. Vectors | |--------------------| 0x20020 | Public ROM CRC | |--------------------| 0x20080 | Dead loops | |--------------------| 0x20100 | | | Code | | | | | |--------------------| 0x2BFFC | ROM Version | ---------------------- 0x28fff 上記のROM Exc. Vectorsの配置は以下の通り。 ---------------------------- | 20000h | Reset | Branch to the Public ROM Code startup |--------------------------| | 20004h | Undefined | PC = 4030CE04h |--------------------------| | 20008h | SWI | PC = 4030CE08h |--------------------------| | 2000Ch | Pre-fetch abort | PC = 4030CE0Ch |--------------------------| | 20010h | Data abort | PC = 4030CE10h |--------------------------| | 20014h | Unused | PC = 4030CE14h |--------------------------| | 20018h | IRQ | PC = 4030CE18h |--------------------------| | 2001Ch | FIQ | PC = 4030CE1Ch --------------------------- ■使用ツール (1) U-Boot (2) オンライン逆アセンブラ(http://www.onlinedisassembler.com/odaweb/) ■U-Bootのmdで0x20000をdump U-Boot# md 20000 00020000: ea000232 e59ff018 e59ff018 e59ff018 2............... 00020010: e59ff018 e59ff018 e59ff018 e59ff018 ................ ARMのVector tableはアドレスではなくて、マシン語命令が入ってるようだから、 これだけだと分からん。調べるとオンラインの逆アセンブラがあった! (http://www.onlinedisassembler.com/odaweb/) 逆アセンブラ結果。 .data:0x00020000 ea000232 b 0x000208d0 .data:0x00020004 e59ff018 ldr pc, [pc, #24] ; 0x00020024 .data:0x00020008 e59ff018 ldr pc, [pc, #24] ; 0x00020028 .data:0x0002000c e59ff018 ldr pc, [pc, #24] ; 0x0002002c なるほど、reset あとは、0x208d0に飛んでいるのか! ここに am335x の Boot Codeが入っている訳ね。 以上。
2014-03-22 13:33
nice!(0)
コメント(0)
トラックバック(0)
コメント 0