ARM启动文件2440init.s分析(3)

[ENDIAN_CHANGE                                             ;definedin option.inc 默认是FALSE,所以此句不会加入代码中

ASSERT  :DEF:ENTRY_BUS_WIDTH            ;断言指令,检测是否定义该变量,若未定义,报错

[ENTRY_BUS_WIDTH=32                      ;definedin option.inc

b     ChangeBigEndian       ;DCD 0xea000007                ;如果是大端,则这是第一条指令,先设置成大端,再到复位指令

]

[ENTRY_BUS_WIDTH=16

andeq      r14,r7,r0,lsl #20   ;DCD 0x0007ea00

]

[ENTRY_BUS_WIDTH=8

streq       r0,[r0,-r10,ror #1] ;DCD 0x070000ea

]

|

b     ResetHandler ;本硬件用的是小端模式,这是第一个执行语句,直接跳转到复位指令处 0X00

]

b     HandlerUndef ;handler for Undefined mode            0X04

b     HandlerSWI          ;handlerfor SWI interrupt                   0X08

b     HandlerPabort ;handler for PAbort,指令预取中止    0X0C            

b     HandlerDabort       ;handler for DAbort,数据中止          0X10

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjjdd.html