【发布时间】:2017-07-27 10:43:56
【问题描述】:
我正在尝试使用如下指针写入内存,但它正在写入意外地址。
uint32_t* pointer = (uint32_t) (__MEMORY_BASE)
*(pointer+4) = data;
虽然使用下面它按预期工作,
uint32_t* pointer = (uint32_t) (__MEMORY_BASE + 4)
*pointer = data;
谁能告诉我,为什么我不能使用第一种方法写入指针地址。
【问题讨论】:
-
了解指针和指针算法。
4->1。并使用ideomatic 方式通过供应商提供的 (CMSIS) 标头访问硬件外围寄存器。由于其他原因,此代码也不会真正起作用。如果它访问 RAM:不要这样做!使用链接器和部分。