CC2640 SBP_TASK_STACK_SIZE
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一模一样。