volatile关键字

volatile关键字;ide

在进行各种地址定义时,每每用到volatile关键字,volatile的意思是“不稳定的”。优化

volatile修饰的变量,程序在每次访问时,都会直接访问该变量的内存空间,而不是对寄存器进行访问(若是变量没有进行volatile修饰,那么若是有屡次访问,编译器会将其优化而将值存入寄存器,接下来的访问都会直接在寄存器里面操做,而不访问变量所在的内存);spa

个人理解是,变量名就至关于地址,只是地址前加了“*”而已,若是要给寄存器添加变量,那么能够使用内存

为表示方便定义一个32位无符号数据类型:typedef u32 unsigned long 编译器

(u32*)0x7F008820;这一步表示0x7F008820所指数据为32位整型;it

*((u32*)0x7F008820);这样就能够直接取得地址所指的值了;编译

最后一步定义:class

#define GPMCON *((u32*)0x7F008820)变量

咱们就能够在C语言里面经过 u32 i=GPMCOM 来访问它了。也能够经过GPMCOM=i来赋值;数据类型

这里没有使用volatile,由于GPMCON的值,是只会经过程序改变的,不会由于外界缘由而发生改变;不像CPSR同样。

相关文章
相关标签/搜索