亚瑟王 发表于 2009-3-11 13:34:11

第一个裸跑程序的建立步骤

这里只讲步骤和方法,没有贴具体的源码出来。
首先复制一份光盘里面的无OS测试程序,命名为:led,我们要实现点亮LED灯的实验。
1、删除src目录下面的除去2440addr.inc,2440init.s,2440lib.c,2440slib.s,Memcfg.inc,Option.inc,mian.c之外的所有文件。
2、然后将2440addr.inc,2440init.s,2440lib.c,2440slib.s,Memcfg.inc,Option.inc复制到新建立的lib目录下。
3、修改main.c文件,在里面的main函数中实现点亮LED的C语言的代码。
4、建立一个ADS下的项目,添加上刚刚剩余的文件,然后编译。
注意:这样编译肯定会有很多错误的,我们需要根据错误修改对应的文件,其实就是因为剩余的这几个文件还保留了以前的信息所致,简单删除操作就可以解决。
5、编译OK之后,使用uboot的a功能烧写镜像到Nand Flash,然后重启即可。

zzcc209 发表于 2009-3-11 21:46:26

我试试看。

shan275 发表于 2009-4-30 18:49:29

能不能贴个简单的程序出来,我们现在刚开始学ARM7,但是手上是TQ2440,刚开始想拿他当单片机用,可是入门有点难,所以想请你们搞些简单的程序,像个LED,或者蜂鸣器都可以,手册里面有无OS程序,可都是在一起的,对我们新手来说移植都是个问题,所以请你帮帮忙,谢谢!

madgood 发表于 2009-5-6 20:00:55

恩,试了试
100个ERROR

努力调试中:L

zzcc209 发表于 2009-5-6 22:58:09

楼上的不错啊,一百个!?

madgood 发表于 2009-5-10 17:25:32

我自己写了个程序,在AXD上仿真没有问题,正常.但是用u-boot控制台把bin文件用功能烧到NAND FLASH之后就不工作了.这是什么原因呢?是不是我的工程环境设置有问题?
我也试过直接把这个bin文件当做U-BOOT烧到NOR FLASH 或NAND FLASH 但是都不能工作起来.

我的程序是:
GPBCON      EQU0x56000010   ; Port B control
GPBDAT      EQU0x56000014   ; Port B data
GPBUP       EQU0x56000018   ; Pull-up control B




        AREA        LED,CODE,READONLY
       
        ENTRY
GO
       
        LDR        R1,=GPBCON
        LDR R0,=0xFFFD57FD;将I/OGPB5~8设置输出
        STR        R0,
       
        LDR R1,=GPBDAT
        LDR R0,=0xA0         ;将LED2,LED4点亮
        STR R0,
        BL        _DELAY       ;调用延时
       
        LDR R0,=0x140      ;将LED1,LED3点亮
        STR R0,
       
        BL        _DELAY          ; 调用延时
       
        B        GO                   ;循环
       
_DELAY                         ;延时子程序

        LDR        R2,=0xFFFFFF
_D1
        SUB        R2,R2,#1
        CMP        R2,#0
        BNE _D1
        MOV PC,LR

       
        END

guizhang001 发表于 2009-5-20 21:29:27

我怎么下载不进去啊?

thinke365 发表于 2009-11-1 18:01:25

需要把裸跑程序写到板子上吗?
这样会把原来的系统覆盖掉吗?

jonnyju 发表于 2009-11-10 21:50:47

楼主传个LED的裸奔程序上来吧

sunhy1021 发表于 2009-11-11 09:44:17

9# jonnyju


给你一个!

jonnyju 发表于 2009-11-11 12:40:26

thank you
看下先

jonnyju 发表于 2009-11-11 13:06:51

有错误啊,
Eorror: L6218E:Undefined symbol PCLK (referred form 2440lib.o)

thinke365 发表于 2009-11-11 14:06:36

恩,试了试
100个ERROR

努力调试中:L
madgood 发表于 2009-5-6 20:00 http://bbs.embedsky.net/images/common/back.gif
调试成功了吗?

thinke365 发表于 2009-11-11 14:07:13

这里只讲步骤和方法,没有贴具体的源码出来。
首先复制一份光盘里面的无OS测试程序,命名为:led,我们要实现点亮LED灯的实验。
1、删除src目录下面的除去2440addr.inc,2440init.s,2440lib.c,2440slib.s,Memcf ...
亚瑟王 发表于 2009-3-11 13:34 http://bbs.embedsky.net/images/common/back.gif
使用uboot的a功能烧写镜像到Nand Flash。。。
那原来的系统会没掉的吧?

xuehui869 发表于 2009-11-11 15:00:30

我传一个,其实只需要2440addr.h即可,完全是个单片机的开发环境。大不了库文件全不用,自己找着PDF配置地址就是了。。。
start.s文件
IMPORT Main
AREA Init,CODE,READONLY
ENTRY
blMain
b .
END

main.c文件:
//#include"2440addr.h"

#define rGPBCON    (*(volatile unsigned *)0x56000010)        //Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014)        //Port B data
#define rGPBUP   (*(volatile unsigned *)0x56000018)        //Pull-up control



void Main()
{unsigned int i,j,k;
rGPBCON = 0x55555555;
rGPBDAT = 0x000000ff;
while(1)
//if(0)
{
rGPBDAT = 0x00000000;

   for(i=0;i<8;i++)
   for(j=0;j<100;j++)
    for(k=0;k<1000;k++);
   
rGPBDAT = 0x000000FF;

   for(i=0;i<8;i++)
   for(j=0;j<100;j++)
    for(k=0;k<1000;k++);
   

}
}
页: [1] 2 3
查看完整版本: 第一个裸跑程序的建立步骤