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

CC2640R2F在SimplePeripheral_taskFxn中增加多个执行语句,编译报错

请教TI工程师一个问题:

芯片选型:CC2640R2F

SDK版本:simplelink_cc2640r2_sdk_3_20_00_21

DEMO:simple_peripheral

增加代码:在SimplePeripheral_taskFxn函数中,增加一个定时处理事件,比如USER_PERIODIC_EVT,1ms周期反复执行,在处理事件中逐渐增加代码。

编译报错:#10099-D</a>  program will not fit into available memory.  placement with alignment fails for section ".cinit" size 0x1890 .  Available memory ranges: cc26xx_app.cmd

双击报错行,定位到如下该行:

SECTIONS
{
.intvecs : > FLASH_START
.text : >> FLASH | FLASH_LAST_PAGE
.const : >> FLASH | FLASH_LAST_PAGE
.constdata : >> FLASH | FLASH_LAST_PAGE
.rodata : >> FLASH | FLASH_LAST_PAGE
.cinit : > FLASH | FLASH_LAST_PAGE
.pinit : >> FLASH | FLASH_LAST_PAGE
.init_array : > FLASH | FLASH_LAST_PAGE
.emb_text : >> FLASH | FLASH_LAST_PAGE
.ccfg : > FLASH_LAST_PAGE (HIGH)

但将执行代码缩减,编译成功。

换一种思路,新建一个任务,比如user_TASK,使用信号量控制,1ms执行一次,添加同样的执行代码,编译报同样的错误。

在cc26xx_app.cmd中将FLASH_LAST_PAGE由之前的一个PAGE改为两个PAGE,即由之前的4K扩展到8K,相应的用户代码区由之前的128K缩减到124K,编译通过,但烧录提示fail。

疑问:在TASK中添加的执行代码怎么会占用FLASH_LAST_PAGE,开始以为是创建任务时分配的stack太小导致,实际不是,增加的执行代码并没有多少,不会开辟太多的BUF。

请帮忙协助解决,谢谢。

Alvin Chen:

内存不足了,每个task 都需要给TASK 的stackSize进行初始化,你可以自己试着调整你的stackSize大小。如果无法解决建议更换资源更大的CC2652R

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F在SimplePeripheral_taskFxn中增加多个执行语句,编译报错
分享到: 更多 (0)