;***********************************************************************************
; Initialize the DDR
;
; Only Initialize DDR if it hasn't already been initialized by the TBR
; if we are running in DDR space, then we need to reload the whole OS
;***********************************************************************************
mov r1, pc
ldr r0, =0x80000000
andals r0, r0, r1
bne __ENABLE_MMU ; Go right to MMU enable and OBMBootMain
bl DDRInit
上面的andals指令如何解释,and后面的al是条件“总是吗”?
__ENABLE_MMU子函数只有一条语句
__ENABLE_MMU
INCLUDE mmuenable.INC
这个怎么执行呢?
;***********************************************************************************
;? Initialize the DDR
;
; Only Initialize DDR if it hasn't already been initialized by the TBR
; if we are running in DDR space, then we need to reload the whole OS
;***********************************************************************************
INCLUDE mmuenable.INC是把mmuenable.INC的内容插入在这里,程序执行到这时应该就是执行mmuenable.INC里面的内容。而INCLUDE memmap.INC也是同样的道理。INCLUDE memmap.INC部分应该不会被跳过去,如果程序能够从B MemMapEnd返回的话,应该会去执行memmap.INC的内容。