|
我把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语言入口,上面的汇编程序段有什么问题吗,怎么就那么简单的几句,是不是太简单了? |
|