QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2918|回复: 7

求助:关于ADS的问题

[复制链接]
发表于 2006-3-17 21:49:52 | 显示全部楼层 |阅读模式
我照着李驹光的《arm应用系统开发详解》第二版6。2的例子原样的打出来,进行make后程序无错。将bin文件下到板中,但是程序无发正常运行。
经过试验,将与main函数写在同一文件下的调用函数提出,又建了一个文件,加了一个头文件,就好使了。
但是,论坛的许多的例子中调用函数和main可以写在一个文件中的。我的就不好使。是不是ads的设置有问题啊
请各位老师指教啊。
谢谢!!
发表于 2006-3-17 23:10:14 | 显示全部楼层
这么说太抽象了,能否具体一些拿代码出来看看  
回复

使用道具 举报

 楼主| 发表于 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,[R0]
        LDR        SP,=0x3FE1000                               
        BL        Main                                                END                                                               

原来的main.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;          
    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++);
}
回复

使用道具 举报

 楼主| 发表于 2006-3-18 10:40:40 | 显示全部楼层
我无法在线调试,不过我试着将main和delay函数放在两个文件中,main.c中放main,delay.c中放delay(),然后加入一个head.h,其中声明一下delay(),然后make,下载,就好使了。不知道为什么啊。貌似许多的例子调用函数和main可以是一个文件中的啊。 :-(  :-(  :-(
回复

使用道具 举报

发表于 2006-3-18 17:08:47 | 显示全部楼层
在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的??
回复

使用道具 举报

 楼主| 发表于 2006-3-19 10:26:18 | 显示全部楼层
[quote:ec9644f6e3="lumit-support-1"]在Init.s的BL Main后加上B . 就可以调试啊
如果不加,单步执行的时候就报错如下:
DBT Warning 00135: Cannot set breakpoints in literal pools
不知道你报的错是什么样子的??[/quote]
我的JTAG在线调试是不好使的。在AXD模拟调试的时候是无错的。
我想知道为什么我的板子main.c中只能写main()函数啊。要不就不好使啊。
回复

使用道具 举报

发表于 2006-3-19 15:51:04 | 显示全部楼层
不应该啊,main的名字没关系啊
你用什么的板子??
回复

使用道具 举报

 楼主| 发表于 2006-3-20 12:20:07 | 显示全部楼层
我用的是深圳市美蓝科技有限公司普及版Ax4510P
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 02:36 , Processed in 0.083987 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表