stm32 指定变量存储地址
uint8_t array[10] attribute((at(0x20000000)))
当你使用 attribute((at(地址))) 强制将变量放置在特定地址时,编译器和链接器通常不会自动调整其他变量的地址以避免冲突。这意味着,如果指定的地址已经被其他变量占用,就会发生冲突。
如果如果有冲突,keil会提示
Error: L6971E: metering_module.o(.data) type RW incompatible with main.o(.ARM.__AT_0x20000000) type ZI in er RW_IRAM1.
可以在xxx.map中看RAM用到多少,哪里有空间
在最后地址0x20005f38后面再指定。
例如:uint8_t array[10] attribute((at(0x20006000)))
这下就OK了