打印

mini2440启动延时问题

[复制链接]
1073|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdhebzgy|  楼主 | 2012-4-25 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了个简单的流水灯裸机程序烧进板子里,但每次都要过好久才能开始运行程序,为什么?还有,我把程序下进0x3000 0000地址里,nand flash启动,为什么每次断电后再上电不能运行程序了?
程序为:
#include "def.h"
#include "option.h"
#include "2440addr.h"     
#include "2440lib.h"
#include "2440slib.h"      
#define LED1_ON    ~(1<<5)
#define LED2_ON    ~(1<<6)
#define LED3_ON    ~(1<<7)
#define LED4_ON    ~(1<<8)
#define LED1_OFF    (1<<5)
#define LED2_OFF    (1<<6)
#define LED3_OFF    (1<<7)
#define LED4_OFF    (1<<8)
void delay(int times)
{
    int i;
    for(;times>0;times--)
      for(i=0;i<400;i++);
}
int Main()
{
        rGPBCON = 0x155555;
     /* 全亮*/
     rGPBDAT = rGPBDAT&(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON);
     delay(10000);
     /* 全灭*/
    rGPBDAT = rGPBDAT|(LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF);
     delay(10000);
  while(1)
    {
      
    rGPBDAT=0x1CE;
    delay(2000);
   
     rGPBDAT=0x1AE;
    delay(2000);
   
     rGPBDAT=0x16E;
    delay(2000);
   
     rGPBDAT=0xEE;
    delay(2000);
   
     rGPBDAT=0x1EE;
    delay(2000);
   
     rGPBDAT=0xE;
    delay(2000);
     }
     return 0;
}

相关帖子

沙发
ycz9999| | 2012-4-25 18:04 | 只看该作者
“启动延时”
可能是要先运行前面一段启动代码,对硬件进行一些必要的初始化

“我把程序下进0x3000 0000地址里,nand flash启动,为什么每次断电后再上电不能运行程序了?”
因为SDRAM是易失性的,要固化,就要把代码“烧写”到flash中

使用特权

评论回复
板凳
zdhebzgy|  楼主 | 2012-4-25 21:27 | 只看该作者
如果用板子的例子代码(含硬件初始化程序)的话就会很快运行应用程序,说明启动代码很快运行完毕的啊,但我的需要的时间很长,足有半分钟还多,这是什么原因?

使用特权

评论回复
地板
madcool| | 2012-4-29 16:12 | 只看该作者
在进入灯闪之前有两句delay,这段延时你是怎么考虑的?另外楼主写代码的习惯太差

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

0

粉丝