马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
AREA INIT,CODE,READONLY
ENTRY
CODE16
B Reset_Handler ;/*复位异常向量,跳转到程序开始位置*/
B . ;/*未定义指令异常,跳转到当前位置 */
B . ;/*SWI 异常,跳转到当前位置*/
B . ;/*指令预取中止异常,跳转到当前位置*/
B . ;/*指令预取中止异常,跳转到当前位置*/
NOP
B IRQ_Handler ;/*IRQ异常,跳转到异常中断服务程序*/
B . ;/*FIQ异常,跳转到当前位置*/
Reset_Handler
LDR R0,=0x3FF5000 ;/*initialize I/O*/
LDR R1,=0xFF ;/*output signal */
STR R1,[R0]
LDR R0,=0x3FF0000 ;/*SYSCFG*/
LDR R1,=0xE7FFFF80 ;/*set SYSCFG 4k Cache &4k SRAM*/
STR R1,[R0]
LDR SP,=0x3FE1000 ;/*set pointer point to 4K SRAM*/
LDR R0,=0x3FF4000
LDR R1,=&0
STR R1,[R0]
LDR R0,=0x3FF4008
LDR R1,=0x1FFBFF ;/*set 0 to tenth and twenty,open T0 and EA */
LDR R0,=0x3FF6004 ;/*set first data to timer */
LDR R1,=0x3FFFFFF
STR R1,[R0]
LDR R0,=0x3FF6000
LDR R1,=0x01 ;/*open T0 and set interval mode*/
STR R1,[R0]
B . ;/*wait ...*/
IRQ_Handler
STMFD SP!,{R0-R6,LR} ;/*这里为什么要报错,什么原因?请多多指教,谢谢!*/
LDR R0,=0x3FF4004
LDR R1,=0x400 ;/*set 1 for INTPND's T0, T0 interrupting and busy */
STR R1,[R0]
;/* BL ledrun*/
B .; ;/*本来这里要调用闪灯的(ledrun),为了方便调试就用个空的*/
LDMFD SP!,{R0-R6,LR} ;/*这里为什么要报错,什么原因?请多多指教,谢谢!*/
SUBS PC,LR,#4
END |