volatile关键字:防止寄存器操作被优化
volatile
关键字的作用是强制程序从内存地址中取值,而不是从缓存中。这可以防止编译器优化那些需要实际写入硬件寄存器的操作。
例如,当代码中只有向寄存器赋值的操作 WDOG->CS=0x2980;
时,编译器可能会注意到后续没有使用该变量,从而将这条写入语句优化掉。因此,在库函数定义 WDOG->CS
这个地址时,前面肯定会加上 volatile
关键字来修饰。
结论:我们在自己定义寄存器的指针变量时,一定要记得加上 volatile
关键字。