viking00000 发表于 2006-3-17 21:49:52

求助:关于ADS的问题

我照着李驹光的《arm应用系统开发详解》第二版6。2的例子原样的打出来,进行make后程序无错。将bin文件下到板中,但是程序无发正常运行。
经过试验,将与main函数写在同一文件下的调用函数提出,又建了一个文件,加了一个头文件,就好使了。
但是,论坛的许多的例子中调用函数和main可以写在一个文件中的。我的就不好使。是不是ads的设置有问题啊
请各位老师指教啊。
谢谢!!

limingth 发表于 2006-3-17 23:10:14

这么说太抽象了,能否具体一些拿代码出来看看:evil:

viking00000 发表于 2006-3-18 10:35:19

原来的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++);
}

viking00000 发表于 2006-3-18 10:40:40

我无法在线调试,不过我试着将main和delay函数放在两个文件中,main.c中放main,delay.c中放delay(),然后加入一个head.h,其中声明一下delay(),然后make,下载,就好使了。不知道为什么啊。貌似许多的例子调用函数和main可以是一个文件中的啊。 :-(:-(:-(

lumit-support-1 发表于 2006-3-18 17:08:47

在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的??

viking00000 发表于 2006-3-19 10:26:18

在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的??
我的JTAG在线调试是不好使的。在AXD模拟调试的时候是无错的。
我想知道为什么我的板子main.c中只能写main()函数啊。要不就不好使啊。

lumit-support-1 发表于 2006-3-19 15:51:04

不应该啊,main的名字没关系啊
你用什么的板子??

viking00000 发表于 2006-3-20 12:20:07

我用的是深圳市美蓝科技有限公司普及版Ax4510P
页: [1]
查看完整版本: 求助:关于ADS的问题