野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17768|回复: 4

请教一下,我们在写LCD驱动的时候,定义LCD的地址时,会加一个__IO ,请问是什么意...

[复制链接]
发表于 2013-6-20 14:33:02 | 显示全部楼层 |阅读模式
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
}LCD_TypeDef;
typedef struct


#define  LCD_BASE ((u32)(0x60000000+0x1fffe))
#define  LCD  ((__IO LCD_TypeDef *)LCD_BASE)
#define  LCD_WriteCMD(cmd) LCD->LCD_REG = ((u16)cmd)
#define  LCD_WriteDAT(dat) LCD->LCD_RAM = ((u16)dat)

我尝试不用 _IO,运行不正常,单步跟踪的时候,在LCD初始化段,程序乱跑,不是逐句执行。。

哪位老兄给我扫一下盲,谢谢、、
回复

使用道具 举报

发表于 2013-6-20 16:08:45 | 显示全部楼层
__I、 __O 、__IO是什么意思?怎么用? - C语言补习班 - 野火初学123社区 - 野火初学123论坛 http://www.firebbs.cn/forum.php?mod=viewthread&tid=122


就是禁止优化
回复 支持 反对

使用道具 举报

发表于 2013-6-20 16:09:37 | 显示全部楼层
编译器优化了,会使得代码不按照我们设定的去执行,直接删掉我们的代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-20 16:18:00 | 显示全部楼层
多谢。我好好研究一下。。
回复 支持 反对

使用道具 举报

发表于 2013-6-20 16:22:15 | 显示全部楼层
虚竹 发表于 2013-6-20 16:08
__I、 __O 、__IO是什么意思?怎么用? - C语言补习班 - 野火初学123社区 - 野火初学123论坛 http://www.ch ...

太棒了,感谢楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-10 10:58 , Processed in 0.028647 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表