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

CC2640的SimpleBLEMulti工程的如何添加OAD功能?

我们有个产品,需要同时用到接收和发送广播功能,所以在 SimpleBLEMulti工程的基础上做开发,但是在添加OAD功能时遇到问题:

1,SimpleBLEMulti工程的协议栈部分占用空间有70KB左右,加上OAD代码的20多KB,那么留给APP的flash空间可能只有36K不到了,有没有什么办法对各个部分的代码进行优化呢?

2,添加OAD功能后,必须要注释掉appBLE.cfg的前两行(如下所示)吗?因为注释掉这两行后,APP占用Flash的空间又多了5KB多,进一步减少了业务代码空间,对项目开发限制很大。

//var ROM = xdc.useModule('ti.sysbios.rom.ROM');
//ROM.romName = ROM.CC2650;

麻烦各位同行帮忙分析一下,感谢!

Viki Shi:

就CC2640的内存空间而言,实现multirole+OAD比较困难。如果需要,我们建议外接一个MCU,负责软件部分的升级功能实现

Qingsong Du:

回复 Viki Shi:

Viki Shi

就CC2640的内存空间而言,实现multirole+OAD比较困难。如果需要,我们建议外接一个MCU,负责软件部分的升级功能实现

Qingsong Du:

回复 Qingsong Du:

因为我们的这款产品用的主机(Central)功能就是扫描广播,然后根据广播内容作出响应,最后通过发送广播回复给上位机。

所以很多主机端功能不需要,我添加预编译宏GATT_NO_CLIENT后,multi工程协议栈变成64KB了。

现在准备在APP部分再优化下,增加再搞几KB出来留给业务代码使用。

希望这个方案能成功!

Qingsong Du:

回复 Qingsong Du:

争取再搞几KB出来留给业务代码使用。

Viki Shi:

回复 Qingsong Du:

可行,主要的限制在于内存,这块考虑外接的话理论上可操作

user4944744:

回复 Qingsong Du:

ni你有没有用SVN功能,官方的multi例程默认是关掉SVN的,我开启SVN之后,协议栈的代码已经接近80Kb了,这种情况下是不是更加不可能实现片内OAD啊

Viki Shi:

回复 user4944744:

没错,开启SNV内存就更加捉襟见肘了。。。

Qingsong Du:

回复 Viki Shi:

嗯,谢谢,我们先进行优化调整,实在不行的话,就只能外接flash试试,或者上CC2640R2F。

Qingsong Du:

回复 user4944744:

qinhan he

ni你有没有用SVN功能,官方的multi例程默认是关掉SVN的,我开启SVN之后,协议栈的代码已经接近80Kb了,这种情况下是不是更加不可能实现片内OAD啊

user4944744:

回复 Qingsong Du:

我采用-DHOST_CONFIG=PERIPHERAL_CFG+OBSERVER_CFG 配置编译了一下,代码已经超过了60K,具体编译出来的大小是:

1.SNV=1时,代码大小是62902+4614

2.SNV=2时,代码大小是62910+8706

请问你是裁剪掉某些功能使代码压缩到60K以下吗?

还有SNV等于1和等于2,具体的区别是什么?我之前看官方的说明好像说是SNV=1时,数据不能稳定保存,不知道是不是我理解错了

赞(0)
未经允许不得转载:TI中文支持网 » CC2640的SimpleBLEMulti工程的如何添加OAD功能?
分享到: 更多 (0)