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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:03   3480   0

使用的是STM32F103C8T6,SRAM大小20k

起始地址0x20000000

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

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

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

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

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

实际的偏移要尝试着改。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP