|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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 |
μC/OS-II下等待信號(hào)量的超時(shí)問題? |
| 作者:上善若水 欄目:ARM技術(shù) |
我定義了一個(gè)信號(hào)量,在一個(gè)任務(wù)中用以下語句等待它,并設(shè)了超時(shí)時(shí)限: …… for(;;) { … for(j=0;j<3;j++) { OSSemPend(OK_Sem, 200, & err); // 等待信號(hào)量 if (err == OS_NO_ERR) { LEDS_Flash(1); OSTaskCreate (Task2…); OSTaskDel(OS_PRIO_SELF); } } LEDS_Flash(4); // 循環(huán)三次都等待信號(hào)量超時(shí)則閃爍LED 4下報(bào)警 } 任務(wù)等待的信號(hào)量OK_Sem 是我在另一個(gè)任務(wù)里通過手工發(fā)的,運(yùn)行的結(jié)果是,如果及時(shí)發(fā)送信號(hào)量,該任務(wù)能創(chuàng)建新任務(wù),并刪除自己,但是如果遲遲不發(fā)信號(hào)量,這個(gè)任務(wù)并不進(jìn)入超時(shí)循環(huán),請(qǐng)問這有可能是什么原因,我該如何檢查? |
| 2樓: | >>參與討論 |
| 作者: newcarron 于 2006/3/24 10:08:00 發(fā)布:
我現(xiàn)在也遇到同樣情況,有解決辦法了嗎? |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2006/3/24 11:02:00 發(fā)布:
去看看源代碼是怎么處理的咯。 我自己寫的操作系統(tǒng)不存在這樣的問題,哈哈~~~~~~~~~` |
|
| 4樓: | >>參與討論 |
| 作者: newcarron 于 2006/3/24 18:36:00 發(fā)布:
問題終于解決了! 原來是配置文件os_cfg.h那里將OS_MAX_EVENTS 選項(xiàng)設(shè)為2,只允許一個(gè)應(yīng)用里最多只有兩個(gè)ECB控制塊,我原本的程序里面已經(jīng)使用了一個(gè)消息郵箱和一個(gè)互斥信號(hào)量了 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |