SDRAM编译出错

2019-07-20 14:36发布

问题描述:想定义一个数组,将其放在SDRAM中,数组的长度比方说是1000,SDRAM在FMC中的地址是0XC0000000,在SDRAM中已经有了一个1200*800的数组用来作为LCD的显存,现在想把新的数组放在其后面,程序是这样写的:
#define data_base LCD_FRAME_BUF_ADDR+1200*800          // LCD_FRAME_BUF_ADDR就是0xc0000000
char SendBuff[1000] __attribute__ ((at(data_base)));
......

编译的时候出现如下的错误:
..OBJDMA.axf: Error: L6982E: AT section ltdc.o(.ARM.__AT_0xC0000000) with base 0xc0000000 limit 0xc01f4000 overlaps address range with AT section main.o(.ARM.__AT_0xC00EA600) with base 0xc00ea600 limit 0xc00ea607.
Not enough information to list image symbols.

这个问题是怎么产生的,又应该如何解决呢?使用的开发板是STM32F429

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
taizonglai
1楼-- · 2019-07-20 16:37
检查你的数组定义!是不是几个数组的区域重叠了!
orta
2楼-- · 2019-07-20 17:40
是不是数组的变量长度与地址 的关系有问题
SDRAM是 16bit
你要定义的数组 char 是 8bit
所以地址的长度要考虑好
cl17726
3楼-- · 2019-07-20 23:35
 精彩回答 2  元偷偷看……

一周热门 更多>