智能车制作

标题: k60内存不足? [打印本页]

作者: YMH_smartcar    时间: 2016-4-1 08:50
标题: k60内存不足?
第一次遇到这样的错误,这是什么意思?不可能是内存不足吧。我的代码量也不多呀。求助谢谢了

作者: YMH_smartcar    时间: 2016-4-1 08:51
是不是内存操作出问题了,有遇到过的棒棒忙啊
作者: YMH_smartcar    时间: 2016-4-1 08:53
Error[Lp011]: section placement failed
          unable to allocate space for sections/blocks with a total estimated minimum size of 0x260e1 bytes (max align 0x8) in  
<[0x1fff0410-0x20010000]> (total uncommitted space 0x1fbf1).

作者: YMH_smartcar    时间: 2016-4-1 08:53
求助散贡献啊
作者: majorfog    时间: 2016-4-1 09:22
是不是有大数组,超过RAM区了
作者: majorfog    时间: 2016-4-1 09:23
define symbol __ICFEDIT_region_RAM_start__ = 0x1fff0000;
define symbol __ICFEDIT_region_RAM_end__   = 0x1fffffff;

这是K60xxxx512的链接文件,你这个应该是已经冒了
作者: YMH_smartcar    时间: 2016-4-1 09:25
majorfog 发表于 2016-4-1 09:23
define symbol __ICFEDIT_region_RAM_start__ = 0x1fff0000;
define symbol __ICFEDIT_region_RAM_end__   ...

请问怎么解决??

作者: majorfog    时间: 2016-4-1 09:39
YMH_smartcar 发表于 2016-4-1 09:25
请问怎么解决??

在工程配置-Linker里面看看,应该是可以修改区域大小的定义;还有一种方法是用#pragma把大的数组放在其他段内,貌似刚才看到了这个:
define symbol __region_RAM2_start__                 = 0x20000000;
define symbol __region_RAM2_end__                         = 0x2000ffff;

这个要看链接器来选择不同的写法了,你去百度一下应该会有结果。

作者: YMH_smartcar    时间: 2016-4-1 12:06
我改了RAM结束地址后就不能下载了
作者: YMH_smartcar    时间: 2016-4-1 12:24
majorfog 发表于 2016-4-1 09:39
在工程配置-Linker里面看看,应该是可以修改区域大小的定义;还有一种方法是用#pragma把大的数组放在其他 ...

define symbol __ICFEDIT_region_RAM_start__ = 0x1fff0000;       // RAM  0x1fff0000
define symbol __ICFEDIT_region_RAM_end__   = 0x2000ffff;       //0x20000000
改成这样后虽然编译不会出错,但是下载到单片机就不行了


作者: majorfog    时间: 2016-4-1 13:58
YMH_smartcar 发表于 2016-4-1 12:24
define symbol __ICFEDIT_region_RAM_start__ = 0x1fff0000;       // RAM  0x1fff0000
define symbol _ ...

那应该就是已经用到最大了,0xFFFF*2=128K,试试用#pragma location定向大数组到RAM2段,要是还不行的话就只能给用到的变量减减肥了~

作者: g847279681    时间: 2016-6-17 15:40
大侠,你的数组有多大?我的38400,跪了




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2