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

CC2640栈大小设置问题

根据我们需要,现在工程需要开4个线程,分别为ICall_createRemoteTasks();     stack_size是默认值1000。GAPRole_createTask();   stack_size设置为768。

SDITask_createTask();   stack_size设置为752。      multi_role_createTask();   stack_size设置为950。 

因为原来串口驱动部分是跟我们应用程序一同放在multi_role_createTask();   线程中的,但是发现串口效率很低,只有0.7K/S所有,怀疑是不是因为跟应用程序同线程导致的,所以我们参考SDI_uart,重新开了一个线程专门来处理uart数据,但是目前发现,随着一条新线程的开启,芯片会跑死。请帮忙协助分析下原因。

请问这个stack_size的值最大为多少,参考dev.ti.com/…/cc2640/memory_management.html#system-stack发现该值最大为1024?那这个1024是值每个线程可以设置这么大还是总共就这么大?

user4961268:

没人知道么?

Viki Shi:

回复 user4961268:

1024这个值可以修改,具体大小是根据你的task需要占用多少决定。

参见BLE software developer guide——Ensure the task has a minimum task stack size of 512 bytes of predefined memory. At a minimum, each stack must be large enough to handle normal subroutine calls and one task preemption context. A task preemption context is the context that is saved when one task preempts another as a result of an interrupt thread readying a higher priority task. Using the TI-RTOS profiling tools of the IDE, the task can be analyzed to determine the peak task stack usage.

赞(0)
未经允许不得转载:TI中文支持网 » CC2640栈大小设置问题
分享到: 更多 (0)