|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
;IMPORT Main
AREA crt0,CODE,READONLY ;定义一个代码段,只读
CODE32 ;32位ARM指令,
ENTRY ;汇编程序的入口点
LDR R0,=0x53000000
MOV R1,#0
STR R1,[R0] ;disable watchDog
LDR SP, =1024*2 ;设置堆栈,注意:不能大于4knand flash中的代码在复位后会;移到内部ram中,它只有4k
;BL Main ;调用C程序中的main函数
LDR R0,=0x56000010 ;R0设为GPBCON寄存器。此寄存器用于选择端口B各引脚的功能是输出、是输入、还是其他
MOV R1,#0x00154000
STR R1,[R0] ;设置GPB7-GPB10为输出口;R1->[R0]
LDR R0,=0x56000014 ;R0设为GPBDAT寄存器。此寄存器用于读/写端口B各引脚的数据
LOOP1
MOV R1,#0x00000000 ;此值改为0x00000080,可让LED1熄灭
STR R1,[R0] ;GPB7输出1
BL DELAY
MOV R1,#0x000000FF
STR R1,[R0]
BL DELAY
B LOOP1
B .
DELAY
LDR R2,=0xFFFFFF;
LOOP
SUBS R2,R2,#1
BNE LOOP
MOV PC,R14
END
如此程序烧写之后灯竟然不会闪烁?但是软件仿真是看到端口数据在变化的!
难道是在DELAY的时候程序没有返回?被其他中断或者别的,实在不懂。
大家帮我找一下什么毛病! |
|