国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

注冊(cè)機(jī)制與消息機(jī)制-嵌入式微系統(tǒng)連載之七

發(fā)布時(shí)間:2016-3-1 09:30    發(fā)布者:designapp
  注冊(cè)機(jī)制在嵌入式編程中很少提到,但回調(diào)函數(shù)大家經(jīng)常接觸,以軟件定時(shí)器為例:
  


  軟件定時(shí)器設(shè)備通過函數(shù)Start把FunctionCallback作為參數(shù)傳入定時(shí)器設(shè)備中保存,之后開啟定時(shí)器,延時(shí)1000ms之后,定時(shí)器就會(huì)直接調(diào)用FunctionCallback,所以這個(gè)FunctionCallback就叫做回調(diào)函數(shù)。類似處理器的中斷一樣。
  注冊(cè)機(jī)制類似回調(diào)函數(shù)性質(zhì),只是把概念擴(kuò)展到變量,上層應(yīng)用通過注冊(cè)函數(shù)地址或者變量地址到設(shè)備中保存,當(dāng)設(shè)備中這個(gè)地址對(duì)應(yīng)的函數(shù)被激活或者變量值有改變,就調(diào)用這個(gè)函數(shù)或者更改這個(gè)變量值,以此達(dá)到底層對(duì)上層的信息傳遞。
  以ADC設(shè)備為例,我們看一下注冊(cè)機(jī)制的應(yīng)用。首先在ADC設(shè)備device_adc.c中定義一個(gè)用于注冊(cè)變量地址的指針數(shù)組RegisterPointerBlock,初始值必須要指向一個(gè)空變量,否則若指向了一些有用的地址而導(dǎo)致這個(gè)地址對(duì)應(yīng)的數(shù)據(jù)改變,會(huì)引起不可預(yù)測(cè)問題。
  


  在設(shè)備中引入注冊(cè)機(jī)制,應(yīng)用層只需要把變量的地址注冊(cè)到設(shè)備中,設(shè)備自己可以通過這個(gè)地址修改數(shù)據(jù),這樣解放了應(yīng)用層,讓應(yīng)用層不需要關(guān)心如何獲取數(shù)據(jù)。但是,注冊(cè)機(jī)制也存在一些缺陷,那就是操作的數(shù)據(jù),必須要原子操作,否則會(huì)導(dǎo)致兩個(gè)應(yīng)用層與設(shè)備同時(shí)修改一個(gè)數(shù)據(jù)的異常存在,出現(xiàn)數(shù)據(jù)錯(cuò)誤,這個(gè)是需要避免的。
  相對(duì)注冊(cè)機(jī)制,消息機(jī)制是大家所熟悉的一種底層向上層傳遞的方式,msOS采用uC/OS-II,標(biāo)配為業(yè)務(wù)邏輯與菜單界面兩個(gè)任務(wù),業(yè)務(wù)邏輯為高優(yōu)先級(jí),支持消息隊(duì)列,設(shè)備發(fā)送的消息,都在業(yè)務(wù)邏輯中處理。
  


  需要注意的是,msOS是采用的是uC/OS-II,它屬于RTOS,業(yè)務(wù)邏輯與菜單界面雖然是兩個(gè)獨(dú)立的任務(wù),但并不是同時(shí)運(yùn)行的,一個(gè)時(shí)刻只能運(yùn)行一個(gè)任務(wù),業(yè)務(wù)邏輯的任務(wù)優(yōu)先級(jí)高于菜單界面,所以在沒有消息的時(shí)候,業(yè)務(wù)邏輯任務(wù)(LogicTask)在PendMessageQueue函數(shù)中掛起等待消息到來,這個(gè)時(shí)候退到菜單界面任務(wù)(MenuTask)執(zhí)行,一旦按鍵設(shè)備檢測(cè)到按鍵并通過PostMessageToLogicTask發(fā)送消息,就會(huì)激活業(yè)務(wù)邏輯任務(wù),讓業(yè)務(wù)邏輯任務(wù)搶占菜單界面任務(wù)運(yùn)行。按鍵設(shè)備的運(yùn)行是基于系統(tǒng)節(jié)拍的,它是在中斷中運(yùn)行,優(yōu)先級(jí)比任務(wù)高,不會(huì)被任務(wù)搶占。
                               
                                                               
                               
               
本文地址:http://m.qingdxww.cn/thread-161499-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99久久国产综合精品五月天 | 毛片免费观看网址 | 岛国免费大片 | 99香蕉国产| 天堂网在线资源 | 日本中文字幕一区二区三区不卡 | 精品日产一卡2卡三卡4卡在线 | 91视频一区二区 | 五月婷婷俺来也 | 国产一级一片免费播放i | 久久综合色综合 | 成人亚欧网站在线观看 | 日韩高清不卡在线 | 特级毛片免费观看视频 | 日本一二三不卡视频 | 国产精品久久久久国产精品 | 99热这里只有精品2 99热这里只有精品18 | 日韩在线不卡 | 成人不卡在线 | 久久99久久精品久久久久久 | 国产一在线精品一区在线观看 | 国产一级在线播放 | 精品91麻豆免费免费国产在线 | 91香蕉网站 | 青青草国产在线 | 一级毛片在线免费观看 | 福利社免费看 | 黑人超长巨大xxxxxxx视频 | h视频免费网站 | 国产福利在线观看精品 | 精品一区二区三区中文 | 天天综合在线视频 | 青青综合| 极品在线 | 欧美精品v日韩精品v国产精品 | 国产高清在线观看视频手机版 | 亚洲欧美日韩一级特黄在线 | 午夜精品影院 | 青草国内精品视频在线观看 | 国产精品资源网 | 青草视频在线观看视频 |