打印

CCS关于volatile问题

[复制链接]
3043|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
freeman05|  楼主 | 2007-6-1 08:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当运行一下语句时;
unsigned int *iFlashAddr;
iFlashAddr=(volatile unsigned int*)0xffff;

出现这样的错误提示:
"flash.c", line 49: error: a value of type "volatile unsigned int *" cannot be assigned to an entity of type "unsigned int *"

请问这是为什么啊?

相关帖子

沙发
cehon| | 2007-6-1 10:24 | 只看该作者

如下

类型不匹配吧

使用特权

评论回复
板凳
acecao| | 2007-6-2 09:51 | 只看该作者

rr

该这样吧
iFlashAddr=*(volatile unsigned int*)0xffff

使用特权

评论回复
地板
freeman05|  楼主 | 2007-6-2 10:43 | 只看该作者

这样

这样
iFlashAddr=*(volatile unsigned int*)0xffff

就会这样了:
"flash.c", line 19: error: a value of type "unsigned int" cannot be assigned to an entity of type "unsigned int *"

使用特权

评论回复
5
acecao| | 2007-6-2 19:21 | 只看该作者

感觉这两句代码要实现的功能是将I/O空间或数据空间FFFFh地址的内容当作FLASH程序的首地址。
unsigned int iFlashAddr; 
iFlashAddr=*(volatile unsigned int*)0xffff;

or:

unsigned int *iFlashAddr;
*(iFlashAddr)=*(volatile unsigned int*)0xffff;


使用特权

评论回复
6
zhr123456| | 2013-8-23 11:55 | 只看该作者
定义 int iFlashAddr;
iFlashAddr=*(volatile int *)0xffff;

使用特权

评论回复
7
zhangmangui| | 2013-8-23 13:42 | 只看该作者
受教了

使用特权

评论回复
8
aresc| | 2013-8-24 16:39 | 只看该作者
应该是:
volatile unsigned int *iFlashAddr;

iFlashAddr = (volatile unsigned int *)0xffff;

使用特权

评论回复
9
hczsea| | 2013-8-26 10:16 | 只看该作者
那就改成
volatile unsigned int *iFlashAddr;
iFlashAddr=(volatile unsigned int*)0xffff;

使用特权

评论回复
10
lelee007| | 2013-8-26 23:33 | 只看该作者
8L正解,其他都是扯淡

使用特权

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

本版积分规则

11

主题

36

帖子

0

粉丝