解决Error: L6971E: main.o(.data) type RW incompatible with (.ARM.__AT_0x20000000)

使用的是STM32F103C8T6,SRAM大小20k

起始地址0x20000000

报错的时候我是想在SRAM内开辟一块空间用于存储数据,是像下面这样写的。

u8    new_firmware_app[20000]				__attribute__((at(0x20000000)));

上网查了一下,发现报错的原因大多都是因为SRAM有冲突,我理解为被重复使用了,所以将将这个数组大小改小一些,起始地址后移一些,改成下面这样就成功了。

u8    new_firmware_app[19000]			     __attribute__((at(0x20000200)));

这是因为我这个程序是个boot,没有什么别的功能,主要就是为了接收这一大堆数据然后写入flash跳转。

实际的偏移要尝试着改。


版权声明:本文为ly_dapanglian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。