|  | 
 
| 我对启动代码中2440init.s  中关联的2440addr.h 和2440addr.inc 有点弄糊涂了,这两个文件有什么区别呢?主要是2440addr.inc 不太理解。 
 我在本论坛看到有一个关于流水灯的简单代码,其中 main函数为:
 #include <stdio.h>
 #define GPBCON (*(volatile unsigned *)0x56000
 #define GPBDAT (*(volatile unsigned *)0x56000014)
 010)
 void delay()
 {
 int i=90000;
 for(i;i>=0;i--);
 }
 int main()
 {
 GPBCON=0x155500;
 while(1)
 {
 GPBDAT=0x1c0;
 delay();
 GPBDAT=0x1a0;
 delay();
 GPBDAT=0x160;
 delay();
 GPBDAT=0xe0;
 delay();
 }
 }
 2440init.s文件内容为:
 WTCON EQU 0x53000000
 GPBCON EQU 0x56000010
 GPBDAT EQU 0x56000014
 
 IMPORT main
 
 CODE32
 AREA Init,CODE,READONLY
 
 ;ENTRY
 
 ldr r0,=WTCON
 ldr r1,=0x00
 str r1,[r0]
 
 b main
 这主要问题是我在TQ2440开发板看到的2440addr.inc 与2440addr.h所定义的符号是不同的,
 如 在2440addr.inc 中:BWSCON     EQU   0x48000000
 而在2440addr.h 为:#define rBWSCON    (*(volatile unsigned *)0x48000000)
 
 而上面的流水灯的宏定义的符号都相同的,即#define GPBCON (*(volatile unsigned *)0x56000中的“GPBCON” 与 GPBCON EQU 0x56000010中的“GPBCON”,
 下载到板能看到流水灯,这是巧合吧,还是真的没问题?
 | 
 |