QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1822|回复: 1

在ads1.2里开发GPIO应用程序

[复制链接]
发表于 2005-8-30 11:00:34 | 显示全部楼层 |阅读模式
Init.s如下
IMPORT main
AREA Init,CODE,READONLY
ENTRY

LDR R0, =0x3FF0000
LDR R1, =0xe7ffff80
STR R1,[R0]
LDR SP, =0x3fe1000
BL main
B  .
END
main.c如下:
#define        IOPMOD        (*(volatile unsigned *)0x03FF5000)
#define IOPDATA        (*(volatile unsigned *)0x03FF500

void Delay(unsigned int);

int main(void)
{
        unsigned long LED;
        IOPMOD=0xEFFFFFFF;
        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++);
}
我在ads1.2里单个文件compile没有错误,使用make 按钮就提示警告:
Image dose not have an entry point.(Not specified or not set due to multiple choses.),每个project都必须有Init.s文件吗?
另外,在CMD.exe里使用armcc,对应用程序的路径有什么要求吗?且使用命令方式编译连接要输很多命令,没有窗口方式来的简单,为什么还有很多人使用命令方式,命令方式有什么好处吗?谢谢!
上面这个程序是拷贝微芯力出的<<arm开发祥解>>第六章的程序。
发表于 2005-8-31 09:23:24 | 显示全部楼层
ads1.2 里面 选择菜单 Edit -> DebugRel Setting -> Linker -> ARM Linker -> Options -> Image entry point  , 这里可以设置 entry point , 可以是 symbol ,也可以是绝对地址,例如 0x8000
命令方式的好处在于具有一般通用性,如果你习惯了 linux 下基于 make 的开发,就会体会到基于命令方式的好处。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-4 16:54 , Processed in 0.043389 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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