|  | 
 
| 我把step4中的I-boot.bin烧写进FLASH,可以正常运行,但是我把startup.s main.c uart.c uart.h用ADS1.2编译出来的BIN文件烧进FLASH里不能运行。 搞不懂那里出了问题。startup.s不是进入C之前的汇编程序吗?
 下面的程序是我在一本书上找来的,编译出来的BIN文件也不能运行。
 汇编部分:
 IMPORT        Main
 AREA        Ini,CODE,READONLY
 ENTRY
 LDR    R0, =0x3FF0000
 LDR    R1, =0xE7FFFF80
 STR        R1, [R0]
 LDR    SP, =0x3FE1000 ;
 BL        Main
 B
 END
 
 C部分:
 #define  IOPMOD       (*(volatile unsigned *)0x03FF5000) //IO port mode register
 #define  IOPDATA  (*(volatile unsigned *)0x03FF500
  //IO port data register void Delay(unsigned int);
 int Main()
 {
 unsigned long  LED;
 IOPMOD=0xFFFFFFFF;       //将IO口置为输出模式
 IOPDATA=0x01;
 for(;;){
 LED=IOPDATA;
 LED=(LED<<1);
 IOPDATA=LED;
 Delay(10);
 if(!(IOPDATA&0x0F))
 IOPDATA=0x01;
 }
 return(0);
 }
 void Delay(unsigned int x)
 {
 unsigned int i,j,k;
 for(i=0;i<=x;i++)
 for(j=0;j<0xff;j++)
 for(k=0;k<0xff;k++);
 }
 书上说这段程序编译后就可以直接烧写了,但是我烧进去怎么不能运行呢?而且仿真调试也不能跳转到C语言入口,上面的汇编程序段有什么问题吗,怎么就那么简单的几句,是不是太简单了?
 | 
 |