变量位于内存地址0x10000处.如何定义一个宏,以便写入该宏写入该内存位置?
在C中声明可写内存位置的事实上的标准方法是:
#define REGISTER (*(volatile uint8_t*)0x10000)
where uint8_t应该对应于该内存位置的内容大小.
uint8_t
然后REGISTER = something;写入该内存位置,就像REGISTER是一个变量一样.
REGISTER = something;
使用volatile关键字非常重要,以防止优化错误并确保读取位置始终是最新的.
volatile