打印

KEIL uVion3 编译错误问题

[复制链接]
3296|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
绿色的瓶盖|  楼主 | 2009-7-10 13:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
宏定义一个地址:
#define IAP_FLASH 0x00007000
………………
定义一个指针变量 :
uint32 *p;

进行如下赋值编译器提示错误:
p=IAP_FLASH;

错误提示为:
Uart0Demo.c(420): error:  #513: a value of type "int" cannot be assigned to an entity of type "unsigned int *"

根据提示应该是说IAP_FLASH是整形数据,不能赋值给unsigned int *类型。
疑问:1:ARM7的地址是int类型而不是unsigned int类型?
      2:如果要纠正,应该怎么改? 强制类型转换 uint32 *?
    恳请哪位大侠指点,初学ARM7,是个新人,多多指教。

相关帖子

沙发
fishqiang| | 2009-7-22 19:00 | 只看该作者

顶一下

p= (unsigned int*)IAP_FLASH;这样试一下。

使用特权

评论回复
板凳
lonely8122| | 2009-7-23 08:33 | 只看该作者

#define IAP_FLASH (uint32 *)0x00007000

使用特权

评论回复
地板
小野狼| | 2009-7-27 09:10 | 只看该作者

~

需要把IAP_FLASH强制转换成指针类型,p = (unsigned int *)IAP_FLASH;

p是指针类型,IAP_FLASH是数据,所以会出错。

使用特权

评论回复
5
古道热肠| | 2009-7-27 12:00 | 只看该作者

肯定不能直接赋,违反了C语言的基本规则

MDK中,unsinged int是32位,只有Short关键指定的才是16位的,这一点也要时刻引起注意。

使用特权

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

本版积分规则

43

主题

97

帖子

0

粉丝