電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>μC/OS-II的多任務(wù)信息流與CAN總線驅(qū)動(dòng)解析

μC/OS-II的多任務(wù)信息流與CAN總線驅(qū)動(dòng)解析

2017-11-01 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

μC/OS-II是美國(guó)人Jean Labrosse編寫的一個(gè)免費(fèi)的、源碼公開(kāi)的嵌入式實(shí)時(shí)內(nèi)核。對(duì)于開(kāi)發(fā)計(jì)算機(jī)嵌入式應(yīng)用產(chǎn)品的技術(shù)人員來(lái)說(shuō)是一個(gè)實(shí)用價(jià)值很高的實(shí)時(shí)嵌入式操作系統(tǒng)ERTOS(Embedded Real Time Operation System)。
  要開(kāi)發(fā)出完善的ERTOS,就要在多任務(wù)的調(diào)度和對(duì)I/O設(shè)備操作的穩(wěn)定性、協(xié)調(diào)性方面做出大量的工作,這也是我在開(kāi)發(fā)ERTOS過(guò)程中深深體會(huì)到的重點(diǎn)所在。希望本文能對(duì)開(kāi)發(fā)ERTOS的技術(shù)人員在多任務(wù)信息流和I/O驅(qū)動(dòng)方面有所啟迪。
  1 多任務(wù)信息流關(guān)鍵技術(shù)
  在討論多任務(wù)信息流之前,先討論一下多任務(wù)的工作狀態(tài)。在μC/OS中,每個(gè)任務(wù)都是無(wú)限循環(huán)的,每個(gè)任務(wù)都處在以下五種狀態(tài)之一:休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)和中斷態(tài),如圖1所示。
  μC/OS-II的多任務(wù)信息流與CAN總線驅(qū)動(dòng)解析
  在多任務(wù)的調(diào)度和驅(qū)動(dòng)程序的編寫過(guò)程中,必然要涉及到公用代碼段和共享存儲(chǔ)區(qū)的保護(hù)問(wèn)題。即使是原有的C函數(shù),可重用性方面在沒(méi)有得到理論和實(shí)踐的驗(yàn)證情況下也需要對(duì)其進(jìn)行保護(hù)。這樣就需要合理的算法對(duì)公用代碼段、共享存儲(chǔ)區(qū)進(jìn)行保護(hù),避免操作系統(tǒng)在運(yùn)行過(guò)程中產(chǎn)生重用性問(wèn)題而導(dǎo)致運(yùn)行結(jié)果不可預(yù)測(cè)。
  系統(tǒng)在開(kāi)發(fā)過(guò)程中,既要考慮到減少系統(tǒng)的復(fù)雜程度,也要兼顧其穩(wěn)定性與運(yùn)行效率的要求。這就需要我們對(duì)各種算法進(jìn)行合理的選擇:在穩(wěn)定性可以保障的情況下,選擇相對(duì)簡(jiǎn)單,占用CPU時(shí)間少的算法;在穩(wěn)定性不能保障的情況下,考慮選擇周全的算法。只有這樣才能使操作系統(tǒng)在一定的配置環(huán)境下達(dá)到最高的運(yùn)行效率。
  接下來(lái)分別用void CanSendMessageProcess(void *data)、void CanSendMessage(void *data)、void CanReceiveMessageProcess(void *data)和void CanReceiveMessage(void *data)這四個(gè)任務(wù)來(lái)描述在采用消息隊(duì)列、郵箱和信號(hào)通信機(jī)制時(shí)的信息流的傳遞過(guò)程。
 ?。?)消息隊(duì)列通信機(jī)制
  消息隊(duì)列在初始化的時(shí)候,建立一個(gè)指定空間大小的數(shù)組,這個(gè)數(shù)組在使用的時(shí)候取得了環(huán)形緩沖區(qū)的概念。這個(gè)數(shù)組在運(yùn)行期間不會(huì)被消除,這樣就避免了重復(fù)建立數(shù)組的時(shí)候內(nèi)存空間的泄漏問(wèn)題。當(dāng)一個(gè)任務(wù)向消息隊(duì)列發(fā)送一個(gè)信息的時(shí)候,相應(yīng)的指針加1(OSQIn+1),隊(duì)列滿時(shí)(OSQEntries = OSQSize),OSQIn則與OSQOut指向同一單元。如果在OSQIn指向的單元內(nèi)插入新的指向消息的指針,就構(gòu)成FIFO(First-In-First-Out)隊(duì)列。相反,如果在OSQOut指向單元的下一個(gè)單元插入新的指針,就構(gòu)成LIFO隊(duì)列(Last-In-First-Out)。在本實(shí)例中,我們定義FIFO隊(duì)列。消息指針總是從OSQOut指向的單元取出。OSQStart和OSQEnd定義了消息指針數(shù)組的頭和尾,以便在OSQIn和OSQOut到達(dá)隊(duì)列的邊緣時(shí),進(jìn)行邊界檢查和必要的指針調(diào)整,實(shí)現(xiàn)其循環(huán)功能。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
  2. 1.02MB   |  7次下載  |  免費(fèi)
  3. 2華瑞昇CR215芯片數(shù)字萬(wàn)用表原理圖
  4. 0.21 MB   |  1次下載  |  3 積分
  5. 3SMD LED選型目錄 燈珠手冊(cè)
  6. 5.36 MB   |  1次下載  |  免費(fèi)
  7. 4Tiva C系列DK-TM4C129X入門指南
  8. 1.69MB   |  1次下載  |  免費(fèi)
  9. 5電涌保護(hù)器(SPD)的選擇、安裝以及裝配
  10. 4.57 MB   |  1次下載  |  免費(fèi)
  11. 6時(shí)源芯微EMC前車燈案例
  12. 458.59 KB  |  1次下載  |  免費(fèi)
  13. 7bq25890、bq25892雙級(jí)聯(lián)充電器EVM(PWR692)用戶指南
  14. 2.02MB   |  1次下載  |  免費(fèi)
  15. 8TPS54426降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
  16. 847.7KB   |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  156次下載  |  免費(fèi)
  3. 22024PMIC市場(chǎng)洞察
  4. 2.23 MB   |  63次下載  |  免費(fèi)
  5. 3開(kāi)關(guān)電源設(shè)計(jì)原理手冊(cè)
  6. 1.83 MB   |  30次下載  |  免費(fèi)
  7. 4智能門鎖原理圖
  8. 0.39 MB   |  28次下載  |  免費(fèi)
  9. 5OAH0428最新規(guī)格書(中文)
  10. 2.52 MB   |  15次下載  |  7 積分
  11. 6ST7789V2單芯片控制器/驅(qū)動(dòng)器英文手冊(cè)
  12. 3.07 MB   |  9次下載  |  1 積分
  13. 7LTH7充電電路和鋰電池升壓5V輸出電路原理圖
  14. 0.04 MB   |  7次下載  |  免費(fèi)
  15. 8TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
  16. 1.02MB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183334次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分