目录

嵌入式开发中volatile关键词使用场景

嵌入式开发中volatile关键词使用场景

嵌入式开发中volatile关键词使用场景

嵌入式开发中volatile关键词使用场景

volatile作为C语言中的关键词,经常出现在嵌入式开发中,该关键词作用是什么?何种场景下必须使用?如何使用?const与volatile可同时使用吗?下面将分别讲解。

一、volatile关键词作用

编译器在编译程序时会进行优化,如果在变量前面用volatile进行限定,那么编译器就不会对该变量进行优化,每次使用该变量,都必须直接读取该变量的内存单元。如果没有对变量进行限定,那么编译器会将变量暂存到高速cache中,若中间过程程序未对变量写操作,将会直接读取cache中的备份变量的值。(CPU处理速度比指令读取速度快很多,为了提高程序执行速度,提供高速缓存cache区)

二、volatile关键词使用场景

volatile一般在下面三场景中使用:

1、被多个进程共享的变量;

2、硬件寄存器;

3、操作系统中的变量。

三、volatile使用方法

不同的计算机体系结构,设备可能是端口映射,也可能是内存映射。端口映射需要用汇编编程,对于内存映射,C语言可以很方便处理。

https://i-blog.csdnimg.cn/blog_migrate/c5ad94a4dfac6a1c8e779c30c52177af.png

图1 volatile使用方法

四、const关键词与volatile配合使用

https://i-blog.csdnimg.cn/blog_migrate/3771d2810b3c41371094f83b68c41053.png

图2 const与volatile配合使用