创建一个队列用来接收OTA 大数据,
然后创建一个 task 用来实现不停的接收 队列数据
/*Creat Queue Task*/
void OTAQueueTaskCreate()
{
OTAQueueHandle=xQueueCreate(OTA_QUEUE_ITEMSIZE, sizeof(OTAEvent_t));
xTaskCreate(OTAQueueRxEvent,"OTAQueue",OTA_QUEUE_LENGTH,NULL,TASK_PRIORITY_NORMAL,OTAQueueTaskHandle);
}
Task的 栈区定义 OTA_QUEUE_LENGTH = 8192
,
队列 OTA_QUEUE_ITEMSIZE 数 为14 , 每个item 里面有一个uint8的1000个字节的数组。
我这样理解 如果队列满的情况 下,那么队列应该占 14*1000 , 这样是不是task 就会被卡死???因为它不够内存给队列用。
但实际情况却不会。
请task 的usStackDepth 和 它内部队列的深度 有什么关系?
谢谢!
|