嵌入式开发中volatile关键词使用场景
目录
嵌入式开发中volatile关键词使用场景
嵌入式开发中volatile关键词使用场景
嵌入式开发中volatile关键词使用场景
volatile作为C语言中的关键词,经常出现在嵌入式开发中,该关键词作用是什么?何种场景下必须使用?如何使用?const与volatile可同时使用吗?下面将分别讲解。
一、volatile关键词作用
编译器在编译程序时会进行优化,如果在变量前面用volatile进行限定,那么编译器就不会对该变量进行优化,每次使用该变量,都必须直接读取该变量的内存单元。如果没有对变量进行限定,那么编译器会将变量暂存到高速cache中,若中间过程程序未对变量写操作,将会直接读取cache中的备份变量的值。(CPU处理速度比指令读取速度快很多,为了提高程序执行速度,提供高速缓存cache区)
二、volatile关键词使用场景
volatile一般在下面三场景中使用:
1、被多个进程共享的变量;
2、硬件寄存器;
3、操作系统中的变量。
三、volatile使用方法
不同的计算机体系结构,设备可能是端口映射,也可能是内存映射。端口映射需要用汇编编程,对于内存映射,C语言可以很方便处理。
图1 volatile使用方法
四、const关键词与volatile配合使用
图2 const与volatile配合使用