当前位置:首页 > 嵌入式 > 嵌入式电路图
[导读]volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

volatile区分C程序员和嵌入式系统程序员的最基本的问题。搞嵌入式的家伙们经常同硬件、中断、RTOS等等打交道,所有这些都要求用到volatile变量。

不懂得volatile的内容将会带来灾难。

int volatile nVint; 当要求使用volatile 声明的变量的值时,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化,对于变量, 编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在b中。而不是重新从i里面读取. 这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问。

volatile 指出 i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取. •;存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义,如并行设备的硬件寄存器(如:状态寄存器) •;中断服务程序中修改的供其它程序检测的变量需要加volatile,如一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) •;多任务环境下各任务间共享的数据,如多线程应用中被几个任务共享的变量

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

C语言编译器是一种用于将C语言源代码转换为可执行程序的软件工具。它的主要功能是将C语言代码翻译成机器语言,以便计算机能够理解和执行。C语言编译器通常包括预处理器、编译器、汇编器和链接器等多个组件,它们协同工作以完成编译过...

关键字: C语言 编译器 Microsoft Visual C++

我给大家出一道有意思的题目:如何快速得到一个字节的位逆序字节。比如0X33的位逆序字节是0XCC。

关键字: 字节 C 语言 volatile

Matlab和C语言的区别是:1、用途不同;2、语法不同;3、运行速度不同;4、可移植性不同;5、代码管理不同。Matlab是一种数值计算和科学计算工具

关键字: matlab语言 C语言 系统编程

单片机是一种集成电路,它包含了中央处理器、存储器、输入输出接口和时钟等基本部件。单片机广泛应用于各种电子设备中,如家用电器、汽车电子、医疗设备等。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用...

关键字: 单片机编程 单片机 C语言

一直以来,嵌入式都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式的相关介绍,详细内容请看下文。

关键字: 嵌入式 C语言

现在市面上的DSP产品很多,定点DSP有200多种,浮点DSP有100多种。主要生产:TI 公司、AD公司、Lucent、Motorola和LSI Logic公司。

关键字: DSP芯片 C语言 芯片选型

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级...

关键字: C语言 单片机

很多单片机初学者问我的第一句话都是:怎样才能学好单片机?今天,我就结合我自己是如何开始学习单片机的,如何开始上手,又如何开始熟练等话题与大家分享。

关键字: 单片机 C语言

Matlab被禁,不代表开源的Python和Julia就可以随便用,甚至祖宗辈的C语言也不一定安全。就像Arm新技术被禁止华为使用,不代表华为就能自由使用所谓开源的RISC-V,开源技术的主导者仍然是美国,而且RISC-...

关键字: Matlab C语言 RISC-V

半个月前这位同学找到我,他当时准备参加面试,就和我聊了很多,总体感觉这位同学基础还是不错。我那时候也就顺便给他找了一些C语言、Linux等等笔试题,后面也教他稍微修改过几次简历。总体来说,这位同学能有现在的三个比较好的o...

关键字: 面试 C语言 笔试题

编辑精选

技术子站

关闭
关闭