微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640 SBP_TASK_STACK_SIZE

CC2640 SBP_TASK_STACK_SIZE

时间:10-02 整理:3721RD 点击:

Dear ALL:

         小弟最近在编写OAD模式工程实验时,发现若直接使用官网的配置

#ifndef SBP_TASK_STACK_SIZE

#define SBP_TASK_STACK_SIZE 644

#endif //SBP_TASK_STACK_SIZE

这个配置在使用PC软件 BLE Device Monitor 升级时是可以成功的,但是在手机端升级时无法成功,升级完毕后整个工程无法启动。

但是把此配置改成

#ifndef SBP_TASK_STACK_SIZE
#define SBP_TASK_STACK_SIZE 1500//644
#endif //SBP_TASK_STACK_SIZE

就都可以成功了,

不知道此线程堆栈是什么意思?怎么使用的?

void TTCBlePeripheralCreateTask(void){
Task_Params taskParams;
Task_Params_init(&taskParams);
taskParams.stack = sbpTaskStack;
taskParams.stackSize = SBP_TASK_STACK_SIZE;
taskParams.priority = SBP_TASK_PRIORITY;
Task_construct(&sbpTask, TTCBlePeripheralTaskFxn, &taskParams, NULL);
}

#define Task_construct ti_sysbios_knl_Task_construct

TI工程无法开源,不知道这段是处理了什么,麻烦TI员工协助给出个答复,或者各位大神们知道答案的谢谢告知。谢谢!

你好,

SBP_TASK_STACK_SIZE是该任务的堆栈大小。

可能由于BLE DEVICE MONITOR发的数据块尺寸和手机端发的数据块尺寸不一致,后者比较大,导致该任务的堆栈不够用。

另外,TI的RTOS的本质和Free rtos一模一样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top