Part Number:LAUNCHXL-CC1310
UARTMon_taskFxn 不明原因 跑飛了
(當發生時,用中斷試過停在每一行//也用過變數值放在指令之間,當跑飛後,用其他Task傳出來看,數值就只停在固定值,位置程式碼也看不出異樣)
[努力過,,難找出真實因素]
其他Task功能都正常, APP_TASK_STACK_SIZE 也加大了,, 剩下只能 加機制 自我Reset MCU了
A:有無API 可FREE 掉,重新 Task_construct嗎?
B:還有何API可讓我確認Task真的跑飛嗎?
======以下部份程式碼
#define APP_TASK_STACK_SIZE 2200
Task_Struct uartTask;
Char uartTaskStack[APP_TASK_STACK_SIZE];
void Uart_TaskInit(void)
{
Task_Params taskParams;
Task_Params_init(&taskParams);
taskParams.stack = uartTaskStack;
taskParams.stackSize = APP_TASK_STACK_SIZE;
taskParams.priority = 2;
Task_construct(&uartTask, UARTMon_taskFxn, &taskParams, NULL);
}
void UARTMon_taskFxn(UArg a0, UArg a1)
{
while (1)
{
++Checki;//在CCS內 觀察,一旦停止 即為跑飛
……………….
Cstep=0x16; //當跑飛後 透過其他Task 傳出Cstep 查看
UART_write(uart, output, Count);
Cstep=0x17;
…………..
}
}
Joy Zhang:
应该不是跑飞吧,看下是不是有什么地方让Task挂起了
,
vincent vcc:
有用過前述那幾種方式來查過,
現象不好顯現出來,不特定才會逼出,
只好想看能否 Free掉,重新CreateTask,
不知能否再建議幾種方式來抓出 干擾位置停在何處?
,
Yolande Wang:
您好,
循环里面的 ++Checki;这个操作存在内存溢出的问题。
建议您加一个判断,重置一下。
,
vincent vcc:
++Checki 只是用來觀察變化 無謂溢位
,
Yolande Wang:
您好,
您把程序运行的日志发上来分析一下。
,
Yolande Wang:
您在循环里面加些日志,先排查一下是否是任务内的程序导致的跑飞。
,
vincent vcc:
SCC停呆掉了,,停在 SCCstep=0x14,,
卡住在 Task_sleep(5500); 裡面,沒往0x15出現
其他的 Task都還有在動作
,
vincent vcc:
之前出現在另一處0x22,,改為10000之後 還未再出現過
SCC停呆掉了,,停在 SCCstep=0x22,,
卡住在 Task_sleep(5000); 裡面,沒往0x23出現
,
Yolande Wang:
您在哪个地方引用过 SCCI 这个变量
,
Yolande Wang:
您好,
vincent vcc 说:卡住在 Task_sleep(5000); 裡面,沒往0x23出現
这个函数出问题的可能性不大,若是有的话就是 Task_sleep(5000); 这个函数有问题,所以很可能是其他地方导致的。
您排查一下 SCCstep 这个变量在别处有用到吗?
,
Yolande Wang:
您好,
如果您对代码还有疑惑,是否可以提供一个能复现您问题的 demo ,我这边跑一下,加日志看看情况。
,
Yolande Wang:
您好,
您的问题解决了吗?如果您长时间未回复,系统会暂时关闭此帖。
有问题的话您可以继续来论坛提问。
感谢您的理解。