TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2640R2 ram不够的问题

项目本来用cc2640开发的,flash不够用了,终于等来了cc2640R2,将cc2640的程序移植到cc2640R2就出问题了,移植部分功能后编译不出错,但是蓝牙连接不上,定位到了ram超过一定size就会出这个问题,通过对比发现,cc2640的simple_peripheral工程的ICALL_RAM0_START=0x200043E8    cc2640R2的simple_peripheral工程的ICALL_RAM0_START=0x200040a0,很明显app可用的ram空间缩小了

然后试图去掉frontier自动适应边界的功能,手动修改ICALL_RAM0_START的大小,编译不报错,但是程序运行不起来

现在有两个问题: 1、ram空间是不是相对于cc2640减小了,可否修改ram分配?

                           2、HEAPMGR_SIZE=0自动分配堆空间,如果剩余ram不够程序运行分配,是不是编译也不会报错,程序运行才会出错?

由于项目处于测试阶段了,望尽快给个回复,好确定方案是不是行得通,是否能使用cc2640R2,谢谢

下面是移植后编译size信息,

53 268 bytes of readonly code memory
5 617 bytes of readonly data memory
15 031 bytes of readwrite data memory

Errors: none
Warnings: none

da qin zheng sheng:

存储空间一样的,把部分stack固化在内部rom

试着优化编译参数。

yb guo:

回复 da qin zheng sheng:

新版确实解决了flash小的问题,但是ram空间分配给app的相对小了

yb guo:

在英文论坛得到了答案,由于R2版本把一部分RAM资源分配给了ROM的stack,所以比之前的版本确实少了,

yb guo:

在英文论坛得到了答案,由于R2版本把一部分RAM资源分配给了ROM的stack,所以比之前的版本确实少了,

Asheng Lin:

回复 yb guo:

请问你看到的论坛介绍连接可否发出来给我参考下,现在在做主机,在获取多从机句柄和信息时发现缓存不够,把 #define SBC_TASK_STACK_SIZE  改大了,完全就不动作,分配缓存就失败了。改小了就容易STACK溢出

赞(0)
未经允许不得转载:TI中文支持网 » cc2640R2 ram不够的问题
分享到: 更多 (0)