主题 : mini2440的LED闪烁程序下载到NAND中正常运行,下载到RAM中常亮,请大神指教! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 131225
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2017-03-06
最后登录: 2017-03-21
楼主  发表于: 2017-03-06 22:37

 mini2440的LED闪烁程序下载到NAND中正常运行,下载到RAM中常亮,请大神指教!

友善之臂MINI2440板子,写了如下代码,下载到NAND中正常闪烁运行,下载到RAM中常亮,而且是两个LED一起亮,延时加了1000倍也是这样。还有写的用按键控制LED亮灭也是一样的结果,NAND中正常,RAM中按键没用,LED常亮。
#define rGPBCON  (*(volatile unsigned long*)0x56000010)
#define rGPBDAT  (*(volatile unsigned long*)0x56000014)
#define Led1_On      ~(1<<5)
#define Led1_Off      (1<<5)
#define Led2_On      ~(1<<6)
void Led_Port_Init(void);
void delay(int t);
int main(void)
{
Led_Port_Init();
while(1)
{
  rGPBDAT &= Led1_On ;   //Led1亮
  delay(10000);
  rGPBDAT &= Led2_On  ;
  rGPBDAT |= Led1_Off;    //Led1灭
  delay(10000);
}
}

void Led_Port_Init(void)
{
   //设置GPB5为输出端口
    rGPBCON &= ~(3<<(5*2));
    rGPBCON |= (1<<(5*2));
    rGPBCON &= ~(3<<(6*2));
    rGPBCON |= (1<<(6*2));  
}
void delay(int t)
{
    int a,b;
    for(a=0;a<=t;a++)
  for(b=0;b<=100;b++);}


MAKEFILE文件:
key_led.bin : crt0.S  key_led.c
    arm-linux-gcc -g -c -o crt0.o crt0.S
    arm-linux-gcc -g -c -o key_led.o key_led.c
    arm-linux-ld -Ttext 0x30000000 -g  crt0.o key_led.o -o key_led_elf
    arm-linux-objcopy -O binary -S key_led_elf key_led.bin
    arm-linux-objdump -D -m arm  key_led_elf > key_led.dis
clean:
    rm -f   key_led.dis key_led.bin key_led_elf *.o