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

LAUNCHXL-CC1310: cc1310

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:

您好,

您的问题解决了吗?如果您长时间未回复,系统会暂时关闭此帖。

有问题的话您可以继续来论坛提问。

感谢您的理解。

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC1310: cc1310
分享到: 更多 (0)