打印

我第一次裸奔2440,一个简单的程序出错了

[复制链接]
1634|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjgtan|  楼主 | 2012-3-9 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我第一次裸奔2440,一个简单的程序。以下是源程序
init.s
AREA |DATA|,CODE,READONLY
ENTRY
ldr r13, = 0x1000
IMPORT LedMain
b LedMain
END

main.c
#define GPFCON (*(volatile unsigned *)0x56000050);
#define GPFDAT (*(volatile unsigned *)0x56000054);
#define GPFUP (*(volatile unsigned *)0x56000058);
void delay(unsigned int x);
int LedMain()
{
unsigned char ledtab[] = {0xdf, 0xbf, 0x7f};
int i;
GPFUP &= 0xffffff1f;
//报错:(serious)c2304e: <command> expected but found '&='
GPFCON &= 0xffff0000;
//报错:(serious)c2304e: <command> expected but found '&='
GPFCON |= 0x5400;
//报错:(serious)c2304e: <command> expected but found '|='


while (1)
{
  for (i = 0; i < 3; ++i)
  {
   GPFDAT = ledtab[i];
   delay(10);
  }
}

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);
  }
}

}

实在搞不清这是为什么,求教啦

相关帖子

沙发
airwill| | 2012-3-13 14:53 | 只看该作者
语法错误, 问题是

#define GPFUP (*(volatile unsigned *)0x56000058);

注意, #define 的后面不能加";"分号!

使用特权

评论回复
板凳
supreme42| | 2012-3-14 14:42 | 只看该作者
#define GPFCON (*(volatile unsigned *)0x56000050);
预定义不能加分号,否则后面用到它时编译器没法识别到底是一个什么符号

使用特权

评论回复
地板
spirits_hyx| | 2012-3-16 23:47 | 只看该作者
同楼上!!!预定义的语法错了

使用特权

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

本版积分规则

36

主题

92

帖子

0

粉丝