jierenzhou 发表于 2009-6-13 12:42:03

第一次编写ADS流水灯程序,就遇到问题

亚瑟王:
      安全提示:腾讯公司提醒您警惕“QQ中奖”骗局。
第一次写流水灯程序,结果编译警告:
L6305W:Image does not have an entry point 。(not specified or not set due to multiple choices)
意思我知道个大概,是说没有程序入口点
但是我不知道哪里出问题了,该怎么改?
请大侠不吝赐教!
(这个程序都是从无OS测试程序里截了一小部分出来的,语句方面该没什么问题)
附上程序:
#define rGPBCON    (*(volatile unsigned *)0x56000010) //Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014) //Port B data
#define rGPBUP   (*(volatile unsigned *)0x56000018) //Pull-up control B

#define LED1                (1<<5)                // rGPB =1 ;
#define LED2                (1<<6)                // rGPB =1 ;
#define LED3                (1<<7)                // rGPB =1 ;
#define LED4                (1<<8)                // rGPB =1 ;

void Delay(int time)
{
unsigned int i,j;
for(i=1;i<100;i++)
for(j=1;j<time;j++)
;
}

void Main()
{

rGPBUP = rGPBUP & ~0x03f0|0x03f0;                //LED => PU En
rGPBCON = rGPBCON & ~0x3d57fc|0x3d57fc;        //LED => OUTPUT;

while(1)
{
rGPBDAT = rGPBDAT & ~(LED4);
Delay(80);
rGPBDAT = rGPBDAT & ~(LED3);
Delay(80);
rGPBDAT = rGPBDAT & ~(LED2);
Delay(80);
rGPBDAT = rGPBDAT & ~(LED1);
Delay(80);
}
}


看了这么久别人的程序,第一次自己动手写,没有思路。别笑我啊。

jierenzhou 发表于 2009-6-13 20:04:08

自己来回答:摸索了半天,才知道原来是DeBugRel Setting 的设置不对,ARM Linker 那里设置的起始地址不对。

gavin_li 发表于 2009-6-24 10:22:01

恩,你的程序写得很简洁。想问一下你的启动代码是用板子自带光盘里的吗?

gavin_li 发表于 2009-6-24 22:43:02

/*U8 idx;
                     
                Uart_Printf("\nPlease select function : \n");          
   $?
                for(i=0; CmdTip.fun!=0; i++)      
                        Uart_Printf("%d : %s\n", i, CmdTip.tip);         
                idx = Uart_GetIntNum_GJ() ;             
                if(idx<i)      
                {      
                        (*CmdTip.fun)();         
                        Delay(20);         
                        Uart_Init( 0,115200 );         
                }*/             
                     
                for (k = 1; k < 5; k++){      
                   switch(k){      
            /*case 1:rGPBDAT=0x56000100;break;
            case 2:rGPBDAT=0x56000080;break;
            case 3:rGPBDAT=0x56000040;break;
            case 4:rGPBDAT=0x56000020;break;*/
            case 1:rGPBDAT=0x560000E0;break;
            case 2:rGPBDAT=0x56000160;break;
            case 3:rGPBDAT=0x560001A0;break;
            case 4:rGPBDAT=0x560001C0;break;
            }
            //for (i = 0; i < 800000; i++);//延时
            Delay(600);         
      }
这是我改的程序,也可以实现哦。呵呵。

gavin_li 发表于 2009-6-24 22:45:25

我是改光盘里的main.c里面的while(1)循环程序。楼上的拷了可以编译但是调试不行。好像是CPU的频率没设置怎么的。老是亮,我设置了400M频率可是程序也不对。奇怪。后来加了时钟定时器,也不行。更奇怪

imb1900220 发表于 2009-7-14 20:59:02

这个代码能在板子上直接运行不?不知道楼主试过没有啊

我也整过一个小代码,能编译过,但是下载的时候不知道怎么搞的,用SJF2440下载的,重启后也没反映,

lzm211 发表于 2010-1-9 20:10:12

同关注ING...........

dongtengfei 发表于 2010-1-13 22:47:52

楼上大哥的问题是什么解决,RO Base 是0x30000000 RW怎么设置的?我也是想单独控制IO口 但是就是不行,也不晓得是怎么回事 ,程序和你差不多。

wser321456 发表于 2010-3-24 16:11:26

jierenzhou能不能把整个程序压缩传上来(包括2440init.s等)

bayji 发表于 2010-5-16 18:12:19

好东西 来参考下

feiniao0120 发表于 2010-5-16 22:40:36

准备开始学习ADS,看看!:)

bitwei 发表于 2010-5-17 14:51:04

RW不用设置吧

sx050 发表于 2010-5-18 00:24:38

准备开始学习ADS
页: [1]
查看完整版本: 第一次编写ADS流水灯程序,就遇到问题