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

CC1310: COLLECT 应用运行期间系统 ti.sysbios.knl.Task.IdleTask 被挂起 程序停止运行

Part Number:CC1310Other Parts Discussed in Thread:SYSBIOS

各位专家:

我在collector 端定义了一个新的HEARTPACKAGE_TIMEOUT_EVT 事件并初始化了事件结构

#define HEARTPACKAGE_TIMEOUT_EVT   0x0020             //心跳包事件

if(Collector_events & HEARTPACKAGE_TIMEOUT_EVT)
{
HeartPackageCount=HeartPackageCount+1;
if (HeartPackageCount>200)
HeartPackageCount=0;

LCD_WRITE_STRING_VALUE("HEARTPACKAGE_TIMEOUT_EVT=",HeartPackageCount,10, 3);

Util_clearEvent(&Collector_events, HEARTPACKAGE_TIMEOUT_EVT);
Csf_setHeartPackageClock(HEARTPACKAGE_TIMEOUT_VALUE);//启动心跳包

}//IF

问题:程序开始运行正常,运行至12 分钟后,系统停止,通过ROV 查看,发现 在 ti.sysbios.knl.Task.IdleTask 任务呈 Preempted 状态,导致系统停止。而

appTaskFxn 呈阻塞状态导致系统运行停止。请帮忙分析下原因。

Kevin Qiu1:

从上面的任务状态来看,当前任务是空闲任务,而它处于被抢占状态,其他两个任务又都在阻塞,此时没有任务运行,所以看起来系统死掉了

,

自由飞翔:

你分析的对,但是,此时信号量根据定时器已经发布了信号量HEARTPACKAGE_TIMEOUT_EVT。此时apptask 应该接收信号量运行呀,为什么还是阻塞状态呀。

注意:在HEARTPACKAGE_TIMEOUT_EVT 事件处理完又设定计时器启动了。

Util_clearEvent(&Collector_events, HEARTPACKAGE_TIMEOUT_EVT); Csf_setHeartPackageClock(HEARTPACKAGE_TIMEOUT_VALUE);//启动心跳包

void Csf_setHeartPackageClock(uint32_t trackingTime){

/* Stop the Tracking timer */ if(Timer_isActive(&HeartPackageClkStruct) == true) { Timer_stop(&HeartPackageClkStruct); LCD_WRITE_STRING("Timer_isActive_stop", 3);

}

if(trackingTime) { /* Setup timer */ Timer_setTimeout(HeartPackageClkHandle, trackingTime); Timer_start(&HeartPackageClkStruct); LCD_WRITE_STRING("Timer_isActive_start", 3); }}

//计时器结构及回调函数

void Csf_initializeHeartPackageClock(void){ /* Initialize the timers needed for this application */ HeartPackageClkHandle = Timer_construct(&HeartPackageClkStruct, HeartPackageTimeoutCallback, HEARTPACKAGE_TIMEOUT_VALUE, 0, false, 0);}

static void HeartPackageTimeoutCallback(UArg a0){ (void)a0; /* Parameter is not used */

Util_setEvent(&Collector_events, HEARTPACKAGE_TIMEOUT_EVT);

/* Wake up the application thread when it waits for clock event */ Semaphore_post(collectorSem);}

,

Kevin Qiu1:

参考下面链接提到的步骤,用RTOS分析工具看一下:

https://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_4_20_00_00/modules/rtos/tirtos_basics/tirtos_basics.html

,

自由飞翔:

正在按你要求进一步查询,请问在ROV 中如何调出下面的图形显示。

,

Kevin Qiu1:

参考视频里面的步骤:https://training.ti.com/how-use-runtime-object-view

,

自由飞翔:

收到,多谢

,

Kevin Qiu1:

不客气

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: COLLECT 应用运行期间系统 ti.sysbios.knl.Task.IdleTask 被挂起 程序停止运行
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1