求助:关于ADS的问题
我照着李驹光的《arm应用系统开发详解》第二版6。2的例子原样的打出来,进行make后程序无错。将bin文件下到板中,但是程序无发正常运行。经过试验,将与main函数写在同一文件下的调用函数提出,又建了一个文件,加了一个头文件,就好使了。
但是,论坛的许多的例子中调用函数和main可以写在一个文件中的。我的就不好使。是不是ads的设置有问题啊
请各位老师指教啊。
谢谢!! 这么说太抽象了,能否具体一些拿代码出来看看:evil: 原来的init.s:
IMPORT Main
AREA Init,CODE,READONLY
CODE32
GET snds.s
ENTRY
LDR R0,=0x3FF0000
LDR R1,=0xE7FFFF80
STR R1,
LDR SP,=0x3FE1000
BL Main END
原来的main.c
#defineIOPMOD (*(volatile unsigned *)0x03FF5000) //IO port mode register
#defineIOPDATA(*(volatile unsigned *)0x03FF5008) //IO port data register
void Delay(unsigned int);
int Main()
{
unsigned longLED;
IOPMOD=0xFFFFFFFF;
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++);
} 我无法在线调试,不过我试着将main和delay函数放在两个文件中,main.c中放main,delay.c中放delay(),然后加入一个head.h,其中声明一下delay(),然后make,下载,就好使了。不知道为什么啊。貌似许多的例子调用函数和main可以是一个文件中的啊。 :-(:-(:-( 在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的?? 在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的??
我的JTAG在线调试是不好使的。在AXD模拟调试的时候是无错的。
我想知道为什么我的板子main.c中只能写main()函数啊。要不就不好使啊。 不应该啊,main的名字没关系啊
你用什么的板子?? 我用的是深圳市美蓝科技有限公司普及版Ax4510P
页:
[1]