8# sedatefire
我也很纳闷,为啥这个跟时钟还有关
如果我把位移直接写在方法里面,不用变量的话,一点问题没有,一旦用到变量就SB了
可能和启动函数有关,以下是我的启动函数
GET option.inc
GET 2440addr.inc
GET memcfg.inc
IMPORT Main
CODE32
AREA Init,CODE,READONLY
ENTRY
;初始化LOCKTIME寄存器
LDR R0 , =LOCKTIME
LDR R1 , =0xFFFFFF
STR R1 , [R0];
;设置CLKDIV的比值为1:2:4
LDR R0 , =CLKDIVN
LDR R1 , =CLKDIV_VAL
STR R1 , [R0]
;设置时钟频率,否则时钟显示混乱
;Fin=12.0MHz Fout=200MHz
LDR R0 , =MPLLCON
LDR R1 , =((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)
STR R1 , [R0]
LDR R0, =0x53000000
MOV R1, #0x0
STR R1, [R0]
LDR SP, =1024 * 4
BL Main
main_loop
B main_loop
END
|