stm32 指定变量存储地址
指定变量存储地址__attribute__((at(0x20000000)))
·
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了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)