刚买了开发板不久,看了许多资料。终于用汇编着手写第一个程序:点亮LED灯并闪烁<br />程序代码如下:<br />BIT14 EQU (1<<14) ;定义BIT14为0x00004000<br /> <br /> AREA LED_ON,CODE,READONLY ;声明代码段LED_ON<br /> ENTRY ;标示程序入口<br /> CODE32 ;声明32位ARM指令<br />START LDR R0,=0x56000050 ;R0 设为 GPFCON 寄存器。此寄存器 <br /> ;用于选择端口F各引脚的功能: <br /> ;是输出、是输入、还是其他 <br /> MOV R1,#BIT14 ;<br /> STR R1,[R0] ;设置GPF7为输出,其他脚为输入<br /> <br /> LDR R0,=0x56000058 ;R0设为GPFUP寄存器。<br /> MOV R1,#0xFF<br /> STR R1,[R0] ;禁能上拉<br /> <br />LEDON LDR R0,=0x56000054 ;R0设为GPFDAT寄存器<br /> MOV R1,#0<br /> STR R1,[R0] ;GPF7为输出0灯亮<br /> <br /> MOV R2,#0 ;x=0;<br />DELAY CMP R2,#2000 ;while(x<2000)<br /> BHS LEDOFF ;{ x++;<br /> ADD R2,R2,#1 ;}<br /> <br /> B DELAY<br /><br />LEDOFF LDR R0,=0x56000054 ;R0设为GPFDAT寄存器<br /> MOV R1,#0x80<br /> STR R1,[R0] ;GPF7为输出1灯灭<br /> <br /> B LEDON<br /> <br /> END<br />问题出在程序下载到开发板上。<br />1、通过软件调试,能正确实现功能!<br />2、在开发板的BIOS环境下,通过串口下载后运行,程序能运行实现预期功能,GPF7的LED闪烁。<br />3、把程序固化到FLASH上运行,我把程序烧写到NAND FLASH 并从NAND FLASH 启动的。ADS1.2中的关键设置如下:Ro_Base为0x30000000,Rw_Base为0x30003000.下载完后,上电复位。有如下现象:GPF7的LED点亮了,但没有闪烁。<br />4、把程序固化到FLASH上运行,我把程序烧写到NAND FLASH 并从NAND FLASH 启动的。ADS1.2中的关键设置如下:Ro_Base为0x0,Rw_Base为0x30003000(我知道这样设置是不对,NOR FLASH烧写和启动才这样设置)。下载完后,上电复位。也有如下现象:GPF7的LED点亮了,但没有闪烁!<br />请大家帮看看,从中指教下小弟!为什么我总不能高高兴兴编程呢?编程应该是种享受啊! |
|