volatile在嵌入式系统中的应用(摘要)。
2010-03-04 19:10
239 查看
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
一般说来,volatile用在如下的几个地方:
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。
一般说来,volatile用在如下的几个地方:
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。
相关文章推荐
- S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件系统移植)
- YAFFS2文件系统在嵌入式LINUX系统中的应用
- 嵌入式系统简介、应用及发展
- 浅谈Windows Embedded在嵌入式系统中的应用
- 状态机在嵌入式前后台系统中的应用
- ARM9嵌入式系统在励磁调节装置的应用
- [百晓生]-1,嵌入式系统开发方向;2,应用软件开发方向;3,软件实施服务方向。
- 嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
- Qt/Embedded在嵌入式Linux系统中的应用(ARM)
- 嵌入式系统及其在医疗仪器设备应用
- Qt在嵌入式系统QNX的HMI应用方案
- CodeTEST嵌入式软件在线测试与分析工具在嵌入式系统开发中的应用
- 嵌入式系统中volatile 的使用的意义
- 嵌入式系统关键技术分析与开发应用
- U-BOOT源码分析及移植(转载)--嵌入式系统应用笔记
- 汽车嵌入式SoC系统的应用与发展
- 嵌入式Linux系统的设计与应用
- TCL嵌入式测试技术在Comware V7系统中的应用
- 状态机在嵌入式前后台系统中的应用(有助于理解短信收接)
- Qt/Embedded在嵌入式Linux系统下的移植与应用