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

EasyLink_init 卡住

HI,

我使用的是simplelink 2.40的版本,用的rfwsnconcentratorOADserver的例程,我在concentratorradiotask里面增加了一个无线配置重新初始化的任务,但是我发现跑到这里 就会卡死

RF_runCmd(rfHandle, (RF_Op*)&EasyLink_cmdFs, RF_PriorityNormal, 0, //asyncCmdCallback,
EASYLINK_RF_EVENT_MASK);

里面,我concentratortask的线程是正常在跑的,两个线程的优先级是一样的3,代码如下:

if(events & RADIO_EVENT_ABORT_RX_CHANGE_CHANNEL)
{

EasyLink_abort();
uint8_t NeedReInitRf = 0;
if(rfRxTxChannel < Default_Channel && easyLink_params.ui32ModType == EasyLink_Phy_Custom2){
easyLink_params.ui32ModType = EasyLink_Phy_Custom;
NeedReInitRf = 1;
}
else if(rfRxTxChannel >= Default_Channel && easyLink_params.ui32ModType == EasyLink_Phy_Custom){
easyLink_params.ui32ModType = EasyLink_Phy_Custom2;
NeedReInitRf = 1;
}

if(NeedReInitRf)
{
    if(EasyLink_init(&easyLink_params) != EasyLink_Status_Success) {
    }
}

Set_Frequency(rfRxTxChannel);
if(EasyLink_receiveAsync(rxDoneCallback, 0) != EasyLink_Status_Success) {
}

}

EasyLink_init我也没改动过,只是 switch(EasyLink_params.ui32ModType)里加了另一个配置的选项, 这个配置 我在上电初始化是可以的,但是放在这个任务里切换就不行,我把EasyLink_abort();,去掉就不堵塞了,但是无线asyncCmdHndl值不对了,这是为什么?

谢谢

Kevin Qiu1:

调用这个函数终止了之前发送,卡死具体是出现什么错误,将log信息传上来看下//*****************************************************************************
//
//! \brief Abort a previously call Async Tx/Rx.
//!
//! This function is a blocking call to abort a previous Async Tx/Rx
//!
//! \return ::EasyLink_Status
//
//*****************************************************************************
extern EasyLink_Status EasyLink_abort(void);

ruimao cong:

回复 Kevin Qiu1:

这个log是在哪里看呢?

Kevin Qiu1:

回复 ruimao cong:

CCS 单步调试卡住时下面Console中的信息

ruimao cong:

回复 Kevin Qiu1:

卡住的时候 下面没有信息 但是单步调试下来是卡在  HwiP_enableInterrupt里面出不来了

Kevin Qiu1:

回复 ruimao cong:

应该时初始化程序中一直在触发中断,建议不要将初始化放在任务中

赞(0)
未经允许不得转载:TI中文支持网 » EasyLink_init 卡住
分享到: 更多 (0)