音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

ucos中關(guān)于等待超時(shí)的問題

作者:珊瑚蟲 欄目:嵌入式系統(tǒng)
ucos中關(guān)于等待超時(shí)的問題

邵貝貝那本書P163

#if OS_EVENT_EN > 0
void  OS_EventTO (OS_EVENT *pevent)
{
    if ((pevent->OSEventTbl[OSTCBCur->OSTCBY] &= ~OSTCBCur->OSTCBBitX) == 0x00) {
        pevent->OSEventGrp &= ~OSTCBCur->OSTCBBitY;
    }
    OSTCBCur->OSTCBStat     = OS_STAT_RDY;       /* Set status to ready                 

               */
    OSTCBCur->OSTCBEventPtr = (OS_EVENT *)0;     /* No longer waiting for event         

               */
}
#endif

有兩個(gè)問題:
1.這里為什么是OSTCBCur,OSTCBCur應(yīng)該是指當(dāng)前正在運(yùn)行的任務(wù),而這里我覺得應(yīng)該是等待某事件而發(fā)生超時(shí)的任務(wù),它肯定不應(yīng)是當(dāng)前任務(wù)啊,因?yàn)樗幱诘却隣顟B(tài)。
2.由于等待超時(shí)將任務(wù)置為就緒態(tài),除了將OSTCBStat 賦值為OS_STAT_RDY外,我覺得還應(yīng)該將這個(gè)任務(wù)放進(jìn)就緒隊(duì)列啊?

各位大俠指點(diǎn)一下,謝謝了!


2樓: >>參與討論
high
小蟲子真好學(xué)
1.他們是同一個(gè)任務(wù).
  關(guān)鍵:此時(shí)任務(wù)已經(jīng)wakeup了.
  tips:OSEventTo是OS***Pend調(diào)用的.在OSSched()后面.
  OS***Pend()
{
   OSSched();
   ...
   OSEventTo();
   ...
  }
  OSSched()發(fā)生任務(wù)調(diào)度,函數(shù)返回時(shí)沒有回到本任務(wù)而是跑去其他任務(wù).
  當(dāng)超時(shí)以及其他任務(wù)的OS***Post(),此任務(wù)再次得到運(yùn)行權(quán)利時(shí).本任務(wù)從OSSched()返回,繼而往下運(yùn)行OSEventTo()...;所以此時(shí)一定是已經(jīng)wakeup了.

2.it is running.
  

3樓: >>參與討論
ga333mao
re
OSTCBCur應(yīng)該就是等待某事件而發(fā)生超時(shí)的任務(wù),在這里。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
嵌入式系統(tǒng)中的液晶選取
請問誰用過龍珠系列的CPU開發(fā)過PDA?
鐵電存儲(chǔ)器 介紹
上傳了一些vxworks的資料
UC_SOII 移植到HC08AP64單片機(jī)
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號