MDK下外扩SRAM指定地址分配空间问题(内存管理详解!!)

2019-07-25 18:06发布

各位大神,请问外扩SRAM中按照
 uint8_t TxBuffer[2048] __attribute__((at(0X68000000)));
 uint8_t data[2048] __attribute__((at(0X68000000)));...
来定义数组,可是编译后总是出现
..OBJ est.axf: Error: L6982E: AT section test.o(.ARM.__AT_0x68000000) with base 0x68000000 limit 0x68001864 overlaps address range with AT section malloc.o(.ARM.__AT_0x68000000) with base 0x68000000 limit 0x68032000.
..OBJ est.axf: Error: L6982E: AT section synaptics.o(.ARM.__AT_0x68000000) with base 0x68000000 limit 0x68002760 overlaps address range with AT section malloc.o(.ARM.__AT_0x68000000) with base 0x68000000 limit 0x68032000.
这种情况。我找了很多帖子都没有遇到这种情况的,是不是我的程序写错了呢,还是地址分配我没注意。
对了,使用外部SRAM还有一种是使用编译器定义的,在外部初始化FSMC该怎么操作呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
sky三叶草
1楼-- · 2019-07-29 11:12
继续逛,继续膜拜大神。
413526602
2楼-- · 2019-07-29 14:01
 精彩回答 2  元偷偷看……
程序猿与攻城狮
3楼-- · 2019-07-29 15:32
正点原子 发表于 2014-9-23 10:37
你这两个地址打架了,你只出现一个地址试试。

”因为不管是存储什么数据类型内存中的地址编号都是32位的,即每个地址编号可以容纳4个字节“
请问地址编号跟地址可容量有什么关系吗?
米珠薪桂123
4楼-- · 2019-07-29 17:41

我遇到个奇怪的问题,这样子定义 uint16_t  flg_bit_all  __attribute__((at(0x20000040))); 能通过编译,但如果我换个地址 uint16_t  flg_bit_all  __attribute__((at(0x20000004))); 就不行,总是报错: Error: L6971E: system_stm32f10x.o(.data) type RW incompatible with main.o(.ARM.__AT_0x20000004) type ZI in er RW_IRAM1.    不知道怎么回事

一周热门 更多>