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

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

紅皮書第469頁 ucosII疑問

作者:randomkuan 欄目:ARM技術
紅皮書第469頁 ucosII疑問
 uint8 UART0Getch(void)
{
    uint8 err;
    OS_ENTER_CRITICAL();
    while((U0LSR & 0x00000001) == 0)              
    {                                           /* 沒有收到數(shù)據(jù) */
        U0IER = U0IER | 0x01;                   /* 允許接收中斷 */
        OSSemPend(Uart0Sem, 0, &err);           /* 等待接收數(shù)據(jù) */
    }
    err = U0RBR;                                /* 讀取收到的數(shù)據(jù) */
    OS_EXIT_CRITICAL();
    return err;
}
函數(shù)首先判斷UART0的FIFO中是否有數(shù)據(jù),如果沒有,則允許UART0的接收數(shù)據(jù)可用中斷和等待一個信號量.UART0的中斷在接收到數(shù)據(jù)后會發(fā)送這個信號量,函數(shù)恢復運行.

問題:
     為了函數(shù)可以重入,函數(shù)一開始就關了中斷OS_ENTER_CRITICAL();,使IRQ中斷禁止,也就是說就算UART0硬件收到數(shù)據(jù)了,程序也不會響應串口IRQ中斷程序,那么這個信號量就發(fā)不出了
.請問我是不是理解錯了?


2樓: >>參與討論
zxwwwwcom
是的。。
OSSemPend(Uart0Sem, 0, &err);           /* 等待接收數(shù)據(jù) */
函數(shù)會進行任務切換,當恢復其他任務的時候,中斷就打開了,請仔細看看移植代碼。
歡迎交流

3樓: >>參與討論
randomkuan
多謝zxwwwwcom
重新看過代碼了,明白了,謝謝zxwwwwcom ,我的qq是26505065,大家交流交流!

4樓: >>參與討論
yzhu
傻傻地問: "紅皮書"是指哪本書?
 
5樓: >>參與討論
上善若水
接著問兩個問題:
1.“為了函數(shù)可以重入,函數(shù)一開始就關了中斷OS_ENTER_CRITICAL();,”是什么意思,周立功的這個串口驅動里,為什么每個函數(shù)都有進入臨界區(qū)的部分?

2. 請問zxwwwwcom,“函數(shù)會進行任務切換,當恢復其他任務的時候,中斷就打開了,請仔細看看移植代碼!甭闊┠僬f的細一點,看移植代碼的哪部分?

參與討論
昵稱:
討論內容:
 
 
相關帖子
急求:lpc2103的工程模板sdt或keil
請教關于 keil arm 的雙精度浮點運算
如何在uc/os中同時跑起兩個TIMER
xclk,cclk,wr,oe到底是什么樣的時間關系?
如何用IAP遠程在線升級LPC2132上的應用程序?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


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