当前位置: 代码迷 >> 综合 >> __IO uint32_t 中的__IO (volatile)
  详细解决方案

__IO uint32_t 中的__IO (volatile)

热度:30   发布时间:2023-12-13 00:15:07.0

如果不加这个voliatile修饰,程序是利用catch当中的数据,那个可能是过时的了,加了 voliatile,就在需要用的时候,程序重新去那个地址去提取,保证是最新的。如:while((unsigned char *)0x20)时,有时系统可能不真正去读0x20的值,而是用第一次读出的值,如果这样,那这个循环可能是个死循环。用了volatile 则要求每次都去读0x20的实际值。

1. volatile变量可变允许除了程序之外的比如硬件来修改他的内容 。

 2. 访问该数据任何时候都会直接访问该地址处内容,即通过cache提高访问速度的优化被取消,提高访问速度,并且确保当前读取到的值是最新的数据值。

  相关解决方案