資料介紹
本課程設(shè)計(jì)是使用我們學(xué)習(xí)過(guò)的嵌入式系統(tǒng)的有關(guān)知識(shí),在 ARM9 嵌入式硬件開(kāi)發(fā)平臺(tái)和μC/OS-II 的軟件開(kāi)發(fā)框架下,實(shí)現(xiàn)一個(gè)還有 AD 轉(zhuǎn)換,按鍵,LCD等硬件功能的實(shí)時(shí)多任務(wù)的簡(jiǎn)單貪吃蛇的設(shè)計(jì)。文中首先μC/OSII 系統(tǒng)和 ARM9進(jìn)行了介紹,然后對(duì)設(shè)計(jì)要求進(jìn)行分析,給出了系統(tǒng)總體上設(shè)計(jì),并對(duì)各個(gè)功能模塊進(jìn)行了介紹,緊接著給出了 系統(tǒng)軟件設(shè)計(jì),最后介紹了系統(tǒng)的調(diào)試方法和測(cè)試結(jié)果。
1、μC /OS-II 操作系統(tǒng) μC/OS-II 是一種可移植的,可植入 ROM 的,可裁剪的,搶占式的,實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號(hào)處理器。uC/OS-II 只是一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。沒(méi)有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡(luò)等額外的服務(wù)。但由于 uC/OS-II 良好的可擴(kuò)展性和源碼開(kāi)放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實(shí)現(xiàn)。 uC/OS-II 目標(biāo)是實(shí)現(xiàn)一個(gè)基于優(yōu)先級(jí)調(diào)度的搶占式的實(shí)時(shí)內(nèi)核,并在這個(gè)內(nèi)核之上提供最基本的系統(tǒng)服務(wù),如信號(hào)量,郵箱,消息隊(duì)列,內(nèi)存管理,中斷管理等
μC/OS-II 是專(zhuān)門(mén)為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的, 絕大部分代碼是用 C 語(yǔ)言編寫(xiě)的。 CPU 硬件相關(guān)部分是用匯編語(yǔ)言編寫(xiě)的、總量約 200 行的匯編語(yǔ)言部分被壓縮到最低限度,為的是便于移植到任何一種其它的 CPU 上。
μC /OS-II 中最多可以支持 64 個(gè)任務(wù),分別對(duì)應(yīng)優(yōu)先級(jí) 0~63,其中 0 為最高優(yōu)先級(jí)。63 為最低級(jí),系統(tǒng)保留了 4 個(gè)最高優(yōu)先級(jí)的任務(wù)和 4 個(gè)最低優(yōu)先級(jí)的任務(wù),所有用戶可以使用的任務(wù)數(shù)有 56 個(gè),每個(gè)任務(wù)都有不同的優(yōu)先級(jí),用戶在創(chuàng)建任務(wù)的時(shí)候定義該任務(wù)的優(yōu)先級(jí)。μC/OS 操作系統(tǒng)中每個(gè)任務(wù)可以有 5 種狀態(tài):休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、等待或掛起狀態(tài)、中斷態(tài),在任一個(gè)時(shí)候,任務(wù)的狀態(tài)一定是這 5 種狀態(tài)之一。任務(wù)在等待消息、郵箱或者信號(hào)量等事件的到來(lái)的時(shí)候會(huì)進(jìn)入掛起狀態(tài),當(dāng)任務(wù)接到消息以后,則處于就緒狀態(tài)。
uC/OS-II 的時(shí)間管理是通過(guò)定時(shí)中斷來(lái)實(shí)現(xiàn)的,該定時(shí)中斷一般為 10毫秒或 100 毫秒發(fā)生一次,時(shí)間頻率取決于用戶對(duì)硬件系統(tǒng)的定時(shí)器編程來(lái)實(shí)現(xiàn)。中斷發(fā)生的時(shí)間間隔是固定不變的,該中斷也成為一個(gè)時(shí)鐘節(jié)拍。
uC/OS-II 要求用戶在定時(shí)中斷的服務(wù)程序中,調(diào)用系統(tǒng)提供的與時(shí)鐘節(jié)拍相關(guān)的系統(tǒng)函數(shù),例如中斷級(jí)的任務(wù)切換函數(shù),系統(tǒng)時(shí)間函數(shù)。在 ANSI C 中是使用 malloc 和 free 兩個(gè)函數(shù)來(lái)動(dòng)態(tài)分配和釋放內(nèi)存。但在嵌入式實(shí)時(shí)系統(tǒng)中,多次這樣的操作會(huì)導(dǎo)致內(nèi)存碎片,且由于內(nèi)存管理算法的原因,malloc 和 free 的執(zhí)行時(shí)間也是不確定。
uC/OS-II 中把連續(xù)的大塊內(nèi)存按分區(qū)管理。每個(gè)分區(qū)中包含整數(shù)個(gè)大小相同的內(nèi)存塊,但不同分區(qū)之間的內(nèi)存塊大小可以不同。用戶需要?jiǎng)討B(tài)分配內(nèi)存時(shí),系統(tǒng)選擇一個(gè)適當(dāng)?shù)姆謪^(qū),按塊來(lái)分配內(nèi)存。釋放內(nèi)存時(shí)將該塊放回它以前所屬的分區(qū),這樣能有效解決碎片問(wèn)題,同時(shí)執(zhí)行時(shí)間也是固定的。
對(duì)一個(gè)多任務(wù)的操作系統(tǒng)來(lái)說(shuō),任務(wù)間的通信和同步是必不可少的。uC/OS-II 中提供了 4 種同步對(duì)象,分別是信號(hào)量,郵箱,消息隊(duì)列和事件。所有這些同步對(duì)象都有創(chuàng)建,等待,發(fā)送,查詢的接口用于實(shí)現(xiàn)進(jìn)程間的通信和同步。uC/OS-II 采用的是可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核??蓜儕Z型的實(shí)時(shí)內(nèi)核在任何時(shí)候都運(yùn)行就緒了的最高優(yōu)先級(jí)的任務(wù)。 uC/os-II 的任務(wù)調(diào)度是完全基于任務(wù)優(yōu)先級(jí)的搶占式調(diào)度,也就是最高優(yōu)先級(jí)的任務(wù)一旦處于就緒狀態(tài),則立即搶占正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的處理器資源。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),uC/OS-II 規(guī)定所有任務(wù)的優(yōu)先級(jí)不同,因?yàn)槿蝿?wù)的優(yōu)先級(jí)也同時(shí)唯一標(biāo)志了該任務(wù)本身。
隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計(jì)算機(jī)技術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當(dāng)前研究和應(yīng)用的熱點(diǎn)。
- 基于51單片機(jī)的貪吃蛇游戲設(shè)計(jì) 0次下載
- 基于51單片機(jī)的貪吃蛇游戲設(shè)計(jì) 2次下載
- 基于51單片機(jī)的貪吃蛇游戲設(shè)計(jì)
- micro:bit貪吃蛇游戲開(kāi)源分享
- 基于STM32的貪吃蛇小游戲
- 基于stm32的貪吃蛇小游戲
- 基于51單片機(jī)和OLED屏幕的貪吃蛇游戲
- 基于LabVIEW的貪吃蛇游戲源代碼 73次下載
- 使用51單片機(jī)實(shí)現(xiàn)貪吃蛇游戲的程序免費(fèi)下載
- 51單片機(jī)的貪吃蛇游戲 40次下載
- 貪吃蛇游戲設(shè)計(jì)貪吃蛇收尾基本完成 3次下載
- 貪吃蛇游戲(verilog) 51次下載
- 吳鑒鷹12864系列(連載)之基于12864的貪吃蛇游戲的設(shè)計(jì)詳 7次下載
- 貪吃蛇游戲單片機(jī)程序 20次下載
- C語(yǔ)言教程之貪吃蛇游戲的問(wèn)題 0次下載
- 基于FPGA的貪吃蛇游戲設(shè)計(jì) 999次閱讀
- C語(yǔ)言零基礎(chǔ)項(xiàng)目:吃豆人小游戲!詳細(xì)思路+源碼分享 1265次閱讀
- 西門(mén)子S7-1500用SCL語(yǔ)言編寫(xiě)的俄羅斯方塊和貪吃蛇程序可仿真 3186次閱讀
- 算法的學(xué)習(xí)與貪吃蛇的實(shí)現(xiàn)框架 882次閱讀
- 「行空板Python入門(mén)教程」第六課:貪吃蛇小游戲 1733次閱讀
- 基于C語(yǔ)言實(shí)現(xiàn)的貪吃蛇小游戲 1979次閱讀
- 英創(chuàng)信息技術(shù)ARM9工控板遠(yuǎn)程抓拍圖像應(yīng)用介紹 1820次閱讀
- 米爾科技 ATMEL AT91SAM9G45 ARM9單板機(jī)概述 4253次閱讀
- 如何使用ARM9芯片進(jìn)行嵌入式工控機(jī)的設(shè)計(jì) 6659次閱讀
- 基于嵌入式linux開(kāi)發(fā)板的貪吃蛇游戲運(yùn)行 9574次閱讀
- 初學(xué)者是選ARM7還是ARM9?uCOS還是Linux? 7577次閱讀
- ARM9入門(mén)學(xué)習(xí)心得分享 7103次閱讀
- 學(xué)ARM9入門(mén)需要多久_學(xué)ARM9要看的書(shū)籍 9885次閱讀
- 介紹arm9時(shí)鐘與定時(shí)器 8228次閱讀
- 基于ARM9和GPRS的實(shí)時(shí)電力負(fù)控管理系統(tǒng)的設(shè)計(jì) 2159次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多