![嵌入式系統(tǒng)設(shè)計(jì)報(bào)告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/21/6f303d62-6a8e-42b0-a024-f4adee5f5071/6f303d62-6a8e-42b0-a024-f4adee5f50711.gif)
![嵌入式系統(tǒng)設(shè)計(jì)報(bào)告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/21/6f303d62-6a8e-42b0-a024-f4adee5f5071/6f303d62-6a8e-42b0-a024-f4adee5f50712.gif)
![嵌入式系統(tǒng)設(shè)計(jì)報(bào)告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/21/6f303d62-6a8e-42b0-a024-f4adee5f5071/6f303d62-6a8e-42b0-a024-f4adee5f50713.gif)
![嵌入式系統(tǒng)設(shè)計(jì)報(bào)告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/21/6f303d62-6a8e-42b0-a024-f4adee5f5071/6f303d62-6a8e-42b0-a024-f4adee5f50714.gif)
![嵌入式系統(tǒng)設(shè)計(jì)報(bào)告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/21/6f303d62-6a8e-42b0-a024-f4adee5f5071/6f303d62-6a8e-42b0-a024-f4adee5f50715.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式操作系統(tǒng)報(bào)告 學(xué) 院 專 業(yè) 題 目 LED、按鍵、LCD、MPU6050任務(wù)切換 姓名學(xué)號 指導(dǎo)教師 日 期 2016 年 12月 10 日 摘要隨著電子技術(shù)的發(fā)展,嵌入式技術(shù)成為當(dāng)今計(jì)算機(jī)應(yīng)的主流技術(shù),嵌入式操作系統(tǒng)是嵌入式系統(tǒng)發(fā)展到一定階段的產(chǎn)物,是為了滿足日益復(fù)雜的嵌入式系統(tǒng)設(shè)計(jì)的要求而產(chǎn)生的。隨著微處理器功能的不斷提升,嵌入式操作系統(tǒng)的應(yīng)用范圍也變得越來越強(qiáng)大。對基于特定嵌入式操作系統(tǒng)上的軟件設(shè)計(jì)研究己成為了近年來的熱點(diǎn),井且對于嵌入式操作系統(tǒng)在實(shí)際工程中的推廣應(yīng)用有著重要的意義。本文使用蒲公英STM32F103開發(fā)板,利用Keil軟件創(chuàng)建工程。移植UCOS系統(tǒng)內(nèi)核,應(yīng)用C語言
2、編寫程序。完成了四個(gè)任務(wù)的創(chuàng)建和相互調(diào)度:LED燈、按鍵、LCD屏幕顯示、MPU6050加速度傳感器數(shù)據(jù)采集,通過按鍵更改LED燈的顯示效果、通過實(shí)時(shí)采集MUP6050傳感器的數(shù)據(jù),顯示在LCD上,并用信號量和消息郵箱進(jìn)行任務(wù)之間的信息傳遞。關(guān)鍵詞:UCOS-ii、嵌入式系統(tǒng)、STM32F103、keilABSTRACT With the development of electronic technology, embedded technology has become the mainstream technology in the computer, the embedded oper
3、ating system is the product of a certain stage of development of embedded system, is produced in order to meet the design requirements of the embedded system is becoming more complicated. With the continuous improvement of the function of the microprocessor, the application of embedded operating sys
4、tem becomes more and more powerful. The research of software design based on specific embedded operating system has become a hot spot in recent years, and it has important significance for the application of embedded operating system in practical engineering.In this paper, the use of dandelion STM32
5、F103 development board, the use of Keil software to create the project. Transplant UCOS system kernel, the application of C language program. Complete the construction of four tasks and scheduling: LED lights, buttons, LCD display screen, MPU6050 acceleration sensor data acquisition, change the LED
6、lamp through the button display, through real-time acquisition of MUP6050 sensor data, display on the LCD, and the task of transmission of information between signal and message mailbox.Key words: UCOS-ii, embedded system, STM32F103, KeilKey words:目錄1 緒論11.1 研究的目的與意義11.2 嵌入式系統(tǒng)概述11.3 嵌入式操作系統(tǒng)特征及發(fā)展現(xiàn)狀22
7、 u C/OS-II簡介32.1 u C/OS-II特點(diǎn)32.2 u C/OS-II內(nèi)核分析32.2.1 臨界段32.2.2 任務(wù)定義及狀態(tài)42.2.3 任務(wù)控制塊(OS TCB)52.2.4 任務(wù)調(diào)度53 開發(fā)環(huán)境73.1 開發(fā)環(huán)境73.1.1 Keil簡介73.1.2 keil特點(diǎn)73.2 硬件環(huán)境83.2.1 蒲公英32F平臺簡介83.2.2 32F103引腳圖83.2.3 蒲公英32F103開發(fā)板特點(diǎn)94 程序分析104.1 程序流程圖104.2 代碼分析114.2.1 lcd顯示功能114.2.2 按鍵功能114.2.3 LED燈控制功能124.2.4 加速度傳感功能134.2.5
8、在屏幕上顯示傳感數(shù)字135 5運(yùn)行結(jié)果145.1 程序代碼截圖145.2 實(shí)物圖156 心得體會(huì)15參考文獻(xiàn)16致謝161 緒論1.1 研究的目的與意義隨著單片機(jī)技術(shù)的普及和日益成熟,嵌入式系統(tǒng)已經(jīng)無處不在、無時(shí)不刻地影響著人們的生活了。各種嵌入式產(chǎn)品的功能不斷增強(qiáng)、精確程度不斷提高、響應(yīng)時(shí)間逐漸縮短,可靠性不斷提高且成本不斷降低。嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡言之,嵌入式系統(tǒng)是根據(jù)應(yīng)用的要求,將操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,從而實(shí)現(xiàn)了軟件和硬件一體化的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)一
9、般不提供與終端用戶交互的手段,具有小巧、高度自動(dòng)化和響應(yīng)速度快等特點(diǎn)。從7年代第一臺微處理器的出現(xiàn)到現(xiàn)在,嵌入式系統(tǒng)的發(fā)展己經(jīng)有二十幾年的歷史了,隨著以計(jì)算機(jī)技術(shù),通訊技術(shù)為主的信息技術(shù)的迅速發(fā)展和互聯(lián)網(wǎng)技術(shù)的廣泛應(yīng)用,嵌入式系統(tǒng)的發(fā)展己顯示出微型化和專業(yè)化的趨勢。正是由于嵌入式系統(tǒng)的種種優(yōu)越性,嵌入式系統(tǒng)自產(chǎn)生那天起便開始迅速的發(fā)展,如今嵌入式系統(tǒng)己成為計(jì)算機(jī)領(lǐng)域的一個(gè)重要的組成部分。1.2 嵌入式系統(tǒng)概述嵌入式系統(tǒng)(Embedded system),是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”,根據(jù)英國電氣工程師協(xié)會(huì)( U.K. Institution of Elect
10、rical Engineer)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機(jī)器或用于工廠運(yùn)作的設(shè)備。與個(gè)人計(jì)算機(jī)這樣的通用計(jì)算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。由于嵌入式系統(tǒng)只針對一項(xiàng)特殊的任務(wù),設(shè)計(jì)人員能夠?qū)λM(jìn)行優(yōu)化,減小尺寸降低成本。嵌入式系統(tǒng)通常進(jìn)行大量生產(chǎn),所以單個(gè)的成本節(jié)約,能夠隨著產(chǎn)量進(jìn)行成百上千的放大。嵌入式系統(tǒng)是用來控制或者監(jiān)視機(jī)器、裝置、工廠等大規(guī)模設(shè)備的系統(tǒng)。國內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在
11、ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。 嵌入式系統(tǒng)的核心是由一個(gè)或幾個(gè)預(yù)先編程好以用來執(zhí)行少數(shù)幾項(xiàng)任務(wù)的微處理器或者單片機(jī)組成。與通用計(jì)算機(jī)能夠運(yùn)行用戶選擇的軟件不同,嵌入式系統(tǒng)上的軟件通常是暫時(shí)不變的;所以經(jīng)常稱為“固件”。1.3 嵌入式操作系統(tǒng)特征及發(fā)展現(xiàn)狀 嵌入式操作系統(tǒng)井不是簡單嵌入的操作系統(tǒng),它與通常意義上的操作系統(tǒng)有一定的區(qū)別。嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬資源的分配、調(diào)度工作,控制井協(xié)調(diào)井發(fā)活動(dòng),它必須體現(xiàn)其所在系統(tǒng)的
12、特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能。與通用的操作系統(tǒng)相比,嵌入式操作系統(tǒng)具有如下一些特征: (1)良好的移植性。由于嵌入式設(shè)備硬件平臺的多樣性,CPU芯片的快速更新,嵌入式操作系統(tǒng)要求具有更好的硬件適應(yīng)性。嵌入式操作系統(tǒng)一般都支持廣泛的運(yùn)行平臺,同時(shí)對每種微處理器都提供相應(yīng)的編譯器、連接器、調(diào)試器和加載工具以及性能測試工具等一系列工具鏈,從而形成從開發(fā)、調(diào)試到運(yùn)行的一體化支持; (2)小巧,要求占用更小的硬件資源。嵌入式系統(tǒng)所能提供的資源有限,所以嵌入式操作系統(tǒng)必須做的小巧以滿足嵌入式系統(tǒng)硬件的限制。況且由于嵌入式系統(tǒng)自身的特點(diǎn),它所需要的模塊和功能更小巧,一些在桌面操作系統(tǒng)中的
13、功能在嵌入式操作系統(tǒng)也就不適用了;(3)實(shí)時(shí)性。大多數(shù)嵌入式系統(tǒng)工作在實(shí)時(shí)性要求很高的環(huán)境中,這就要求嵌入式操作系統(tǒng)必須將實(shí)時(shí)性作為一個(gè)很重要的方面來考慮。在信息時(shí)代,人們必須在有效的時(shí)間內(nèi)對到來的信息進(jìn)行處理,從而為進(jìn)一步的決策分析爭取時(shí)間。所以嵌入式操作系統(tǒng)必須體現(xiàn)一定的實(shí)時(shí)性;(4)可裝載和卸載。由于嵌入式系統(tǒng)需要根據(jù)應(yīng)用的要求進(jìn)行裝卸,所以嵌入式操作系統(tǒng)也必須能夠適應(yīng)應(yīng)用的需要進(jìn)行裝卸,對嵌入式操作系統(tǒng)的各個(gè)部分進(jìn)行優(yōu)化和刪除。(5)固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。輔助存儲(chǔ)器在嵌入式系統(tǒng)中使用的很少,因此嵌入式操作系統(tǒng)的文件管理功能
14、應(yīng)該被拆卸,取而代之的是各種內(nèi)存文件系統(tǒng);(6)弱交互性。大多數(shù)嵌入式系統(tǒng)的工作過程不需要人的干預(yù)。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)調(diào)用命令向用戶程序提供服務(wù)。(7)強(qiáng)穩(wěn)定性。嵌入式系統(tǒng)一旦開始運(yùn)行就不需要人的過多干預(yù)。井且很多的嵌入式系統(tǒng)工作在很惡劣的工業(yè)生產(chǎn)的環(huán)境下。在這種條件下,要求嵌入式操作系統(tǒng)具有較高的穩(wěn)定性;(8)統(tǒng)一的接口。隨著各種各樣的嵌入式操作系統(tǒng)的出現(xiàn)人們有必要為嵌入式系統(tǒng)提供的接口進(jìn)行約定,從而為嵌入式應(yīng)用軟件的設(shè)計(jì)者提供統(tǒng)一的服務(wù)接口,為嵌入式軟件的運(yùn)行提供平臺的無關(guān)性。正是由于嵌入式操作系統(tǒng)所具有的這些鮮明的特點(diǎn)才使得其在嵌入式系統(tǒng)的開發(fā)中得到了
15、廣泛的應(yīng)用,近年來全球嵌入式操作系統(tǒng)的發(fā)展空間更是正隨著互聯(lián)網(wǎng)、通訊和計(jì)算機(jī)市場的飛速增長而不斷的擴(kuò)大。但另一個(gè)方面,盡管國外許多公司也有對此類系統(tǒng)幾十年的開發(fā)經(jīng)驗(yàn),可到目前為止在嵌入式系統(tǒng)上井無一個(gè)統(tǒng)一的國際標(biāo)準(zhǔn),這就使得市場上出現(xiàn)了各種不同種類的嵌入式操作系統(tǒng),這些操作系統(tǒng)各有特色,其采用的體系結(jié)構(gòu)和技術(shù)手段也各有優(yōu)點(diǎn),應(yīng)用范圍也不盡相同。2 u C/OS-II簡介2.1 u C/OS-II特點(diǎn) u C/OS- II是由美國人Jean J. Labrosse編寫的一個(gè)公開源代碼的,微內(nèi)核嵌入式實(shí)時(shí)操作系統(tǒng),其實(shí)時(shí)性能和內(nèi)核的健壯性早已經(jīng)在大量的實(shí)際應(yīng)用中得到了證實(shí)。它是由u C/OS升級而
16、來的,并且做了很大的改進(jìn)。下面簡單介紹一下它的特點(diǎn): (1)公開源代碼,且源代碼中有詳細(xì)的注釋,源代碼清晰易讀且結(jié)構(gòu)協(xié)調(diào)、組織有序,對實(shí)時(shí)操作系統(tǒng)的基本原理做了非常詳細(xì)的解釋,簡單易懂。 (2)移植性好,u C/OS- II的源代碼絕大部分是用ANSI C編寫的,與微處理器相關(guān)的部分是用匯編語言寫的,使得u C/OS- II便于移植到其它處理器上。 (3)可裁剪,用戶可以根據(jù)自己的寄存器空間的大小和實(shí)際需要,只保留u C/OS- II中應(yīng)用程序需要的那些系統(tǒng)服務(wù)。 (4)穩(wěn)定性和可靠性高,抗干擾能力強(qiáng)。 (5) u C/OS- II完全是占先式的實(shí)時(shí)內(nèi)核。這意味著u C/OS- II總是運(yùn)行就
17、緒狀態(tài)下優(yōu)先級最高的任務(wù)。 (6) u C/OS- II每個(gè)任務(wù)的優(yōu)先級必須是不同的,這意味著 C/OS- II不支持時(shí)間片輪轉(zhuǎn)調(diào)度法(Round-robin Scheduling ) Z o (7) u C/OS- II的函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有其可確定性。 (8)u C/OS- II提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號量、塊大小固定的內(nèi)存的申請與釋放、時(shí)間相關(guān)函數(shù)等。2.2 u C/OS-II內(nèi)核分析u C/OS- II內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說為每一個(gè)任務(wù)分配CPU時(shí)間及其相關(guān)的資源,并且負(fù)責(zé)任務(wù)之間的通信。內(nèi)核提供的基本服務(wù)是任務(wù)切換。使用實(shí)時(shí)內(nèi)核可以大大簡化應(yīng)用系統(tǒng)的設(shè)計(jì)
18、,因?yàn)閷?shí)時(shí)內(nèi)核允許將應(yīng)用分成若干個(gè)任務(wù),由實(shí)時(shí)內(nèi)核來管理它們。接下來從幾方面對u C/OS-II的內(nèi)核作出介紹:2.2.1 臨界段 代碼的臨界段也稱為臨界區(qū),指處理時(shí)不可分割的一段代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷。為確保臨界段代碼的執(zhí)行,在進(jìn)入臨界段之前要關(guān)中斷,而臨界段代碼執(zhí)行完以后要立即開中斷。和其它內(nèi)核一樣,u C/OS- II為了處理臨界段代碼需要關(guān)中斷,處理完畢后再開中斷。這使得u C/OS- II能夠避免同時(shí)有其它任務(wù)或中斷服務(wù)進(jìn)入臨界段代碼。關(guān)中斷的時(shí)間是實(shí)時(shí)內(nèi)核開發(fā)商應(yīng)提供的最重要的指標(biāo)之一,因?yàn)檫@個(gè)指標(biāo)影響用戶系統(tǒng)對實(shí)時(shí)事件的響應(yīng)性。 u C/OS- II努力使
19、關(guān)中斷時(shí)間降至最短,但就使用u C/OS- II而言,關(guān)中斷的時(shí)間很大程度上取決于微處理器的架構(gòu)以及編譯器所生成的代碼質(zhì)量。微處理器一般都有關(guān)中斷/開中斷指令,用戶使用的C語言編譯器必須有某種機(jī)制能夠在C中直接實(shí)現(xiàn)關(guān)中斷/開中斷地操作。u C/OS- II定義兩個(gè)宏來關(guān)中斷和開中斷,以便避開不同C編譯器廠商選擇不同的方法來處理關(guān)中斷和開中斷。 u C/OS- II中的這兩個(gè)宏調(diào)用分別是:OS ENTER CRITICAL()和OS_ EXITes CRITICAL() 。2.2.2 任務(wù)定義及狀態(tài) u C/OS- II的任務(wù)是一個(gè)無限的循環(huán),也稱作一個(gè)線程,是一個(gè)簡單的程序,該程序可以認(rèn)為CP
20、U完全只屬該程序自己。一個(gè)任務(wù)可以有返回類型,有形式參數(shù)變量,但是任務(wù)是絕不會(huì)返回的。當(dāng)任務(wù)完成以后,任務(wù)可以自我“刪除”,即u C/OS- II不理會(huì)這個(gè)任務(wù)了,這個(gè)任務(wù)的代碼也不會(huì)再運(yùn)行。實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)過程,包括如何把問題分割成多個(gè)任務(wù),每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的棧空間。u C/OS- II可以管理多達(dá)64個(gè)任務(wù),其中空任務(wù)(IDLE)和統(tǒng)計(jì)任務(wù)(STATISTICS)被系統(tǒng)占用。任務(wù)在建立時(shí)必須被賦予不同的優(yōu)先級,優(yōu)先級的數(shù)值越小,則表示任務(wù)的優(yōu)先級越高。u C/OS- II總是運(yùn)行進(jìn)入就緒狀態(tài)的優(yōu)先級最高的任務(wù)。
21、多任務(wù)運(yùn)行的實(shí)現(xiàn)是靠CPU在許多任務(wù)之間轉(zhuǎn)換、調(diào)度,CPU只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)行使CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。在實(shí)時(shí)應(yīng)用中,多任務(wù)化的最大特點(diǎn)是,開發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位?。使用多任?wù),應(yīng)用程序?qū)⒏菀自O(shè)計(jì)與維護(hù)。u C/OS- II中任務(wù)的狀態(tài)包括運(yùn)行態(tài)、就緒態(tài)、等待狀態(tài)、睡眠態(tài)和中斷服務(wù)態(tài)。圖2-1是u C/OS- II控制下的任務(wù)狀態(tài)轉(zhuǎn)換過程。在任一給定的時(shí)刻,任務(wù)的狀態(tài)一定是這五種狀態(tài)之一。2.2.3 任務(wù)控制塊(OS TCB) 任務(wù)控制塊(OS TCB)是一個(gè)數(shù)據(jù)結(jié)構(gòu),是用來描述任務(wù)的一些屬性,包括任務(wù)標(biāo)識號、任務(wù)優(yōu)先級、
22、任務(wù)狀態(tài)信息、任務(wù)控制信息以及堆棧信息等。u C/OS- II中是采用任務(wù)控制塊的方式對任務(wù)進(jìn)行管理的。任務(wù)控制塊在任務(wù)被建立時(shí)被初始化,當(dāng)任務(wù)的CPU使用權(quán)被剝奪時(shí),u C/OS- II用任務(wù)控制塊來保存該任務(wù)的狀態(tài)。而當(dāng)任務(wù)重新得到CPU使用權(quán)時(shí),任務(wù)控制塊能恢復(fù)任務(wù)到被中斷前的狀態(tài),確保任務(wù)從中斷的那一點(diǎn)繼續(xù)執(zhí)行下去。任務(wù)控制塊全部駐留在RAM中。應(yīng)用程序中可以有的最多任務(wù)數(shù)(OS一AXes TASKS )是在文件OS一FCzH中定義的。這個(gè)最多任務(wù)數(shù)也是u C/OS- II分配給用戶程序的最多任務(wù)控制塊的數(shù)目。將OS MAX TASKS的數(shù)目設(shè)置為用戶應(yīng)用程序?qū)嶋H需要的任務(wù)數(shù)可以減小R
23、AM的需求量。所有的任務(wù)控制塊都是放在任務(wù)控制塊列表數(shù)組OSTCBTbI中的。在 u C/OS- II初始化的時(shí)候,所有任務(wù)控制塊OS一CBs被鏈接成單向空任務(wù)鏈表。當(dāng)任務(wù)一旦建立,空任務(wù)控制塊指針OSTCBFreeList指向的任務(wù)控制塊便賦給了該任務(wù),然后OSTCBFreeList的值調(diào)整為指向下鏈表中下一個(gè)空的任務(wù)控制塊。一旦任務(wù)被刪除,任務(wù)控制塊就還給空任務(wù)鏈表。2.2.4 任務(wù)調(diào)度 在u C/OS- II中,最多支持63個(gè)任務(wù),每個(gè)任務(wù)只能有獨(dú)立的優(yōu)先級,即不能有2個(gè)相同優(yōu)先級的任務(wù),系統(tǒng)也不支持時(shí)間片輪番調(diào)度。因此,Rhealstone方法的定義,uC/OS- II的實(shí)時(shí)性主要體現(xiàn)
24、在搶占(Preemption)按照時(shí)間和中斷等待時(shí)間(Latency ) u C/OS- II是一種基于優(yōu)先級調(diào)度的占先式內(nèi)核。在系統(tǒng)運(yùn)行的過程中,可能發(fā)生任務(wù)調(diào)度的時(shí)機(jī)有: (1)對任務(wù)操作的時(shí)候,包括:創(chuàng)建或者刪除任務(wù),掛起或者恢復(fù)任務(wù),改變?nèi)蝿?wù)優(yōu)先級。 (2)任務(wù)主動(dòng)使用OSTimeDly函數(shù)延時(shí)的時(shí)候。 (3)發(fā)送(或者等待)信號量、郵箱、消息的時(shí)候。 (4)中斷函數(shù)返回的時(shí)候。中斷往往會(huì)使一個(gè)更高優(yōu)先級任務(wù)處于就緒狀態(tài),包括使用信號量等或者直接恢復(fù)某個(gè)任務(wù)。所以,在系統(tǒng)退出中斷的時(shí)候,就需要判斷是否有更高優(yōu)先級的任務(wù)處于就緒狀態(tài),如果有,則需要進(jìn)行任務(wù)調(diào)度。 (5)給系統(tǒng)的任務(wù)調(diào)度器
25、解鎖的時(shí)候。在大多數(shù)情況下,u C/OS- II中斷級的任務(wù)調(diào)度是按照如圖2-2所示的流程進(jìn)行的。其中Tr為系統(tǒng)的中斷等待時(shí)間。Tp為系統(tǒng)的搶占時(shí)間。Ts為系統(tǒng)的中斷響應(yīng)與查找的時(shí)間,主要包括中斷入口程序的執(zhí)行,注冊在系統(tǒng)中的中斷向量的查找等。Td為執(zhí)行中斷處理所用的時(shí)間。Tw為系統(tǒng)判斷并查找處于就緒狀態(tài)下優(yōu)先級最高的任務(wù)和中斷級任務(wù)切換的時(shí)間。而Tc則可以認(rèn)為滿足:0Tc成系統(tǒng)的最長關(guān)中斷時(shí)間。當(dāng)有多個(gè)中斷產(chǎn)生的時(shí)候,如果因?yàn)橹袛嗟膬?yōu)先級低或者系統(tǒng)不允許中斷嵌套,則u c/os- II的中斷級任務(wù)調(diào)度將按照如圖2-3所示的流程進(jìn)行。 u C/OS- II是一個(gè)實(shí)時(shí)性比較強(qiáng)的多任務(wù)操作系統(tǒng),很
26、容易評估出系統(tǒng)調(diào)度的最長響應(yīng)時(shí)間。每一個(gè)任務(wù)都是一個(gè)死循環(huán)。u C/OS-II V2.86 可以擴(kuò)展至支持256個(gè)任務(wù),除去系統(tǒng)自帶的優(yōu)先級被設(shè)置為最低的空閑任務(wù) OSTask Idle()和一個(gè)u C/OS-II提供的統(tǒng)計(jì)任務(wù),用戶可以自己制定的任務(wù)多達(dá)254個(gè)。u C/OS-II內(nèi)核通過一個(gè)被稱為任務(wù)控制塊(OS_TCB)的數(shù)據(jù)結(jié)構(gòu)來完成任務(wù)的建立、調(diào)度、執(zhí)行和刪除操作。u C/OS-II中每個(gè)任務(wù)都具備五種狀態(tài),當(dāng)內(nèi)核進(jìn)行一次調(diào)度或者發(fā)生相關(guān)的事件時(shí),任務(wù)就會(huì)在這五種狀態(tài)之間轉(zhuǎn)換,如圖2-4所示。圖2.4 uC/OS-II的任務(wù)就緒表3 開發(fā)環(huán)境3.1 開發(fā)環(huán)境3.1.1 Keil簡介
27、Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(Vision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。3.1.2 keil特點(diǎn)Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性
28、、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),更為便捷。3.2 硬件環(huán)境3.2.1 蒲公英32F平臺簡介STM32F1系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導(dǎo)體(ST)公司出品,其內(nèi)核是Cortex-M3。該系列芯片按片內(nèi)Flash的大小可分為三大類:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。芯片集成定時(shí)器,CAN,ADC,SPI,I2C,USB,UART,等多種功能。其結(jié)構(gòu)和硬件框圖如圖3-1,3-2所示:圖3-1蒲公英32F103開發(fā)板 圖3-2 32F103硬件框圖3.2.2 32F103引腳圖
29、(1)LED燈電路圖3.3 LED輸出端口圖3.4 LED電路(2)按鍵電路圖3.5 按鍵輸出端口 圖3.6按鍵電路(3)LCD電路圖3.7 LCD輸出電路 圖3.8LCD外圍電路(4)MPU6050電路圖3.9 MPU6050外圍電路3.2.3 蒲公英32F103開發(fā)板特點(diǎn)1、ARM最新的Cortex-M3內(nèi)核。優(yōu)先級搶占的中斷控制器,支持中斷自動(dòng)嵌套,硬件完成現(xiàn)場保護(hù)與恢復(fù),中斷嵌套時(shí),只需保護(hù)和恢復(fù)一次現(xiàn)場,即使在恢復(fù)現(xiàn)場的時(shí)候再次中斷也不需要再次保護(hù)現(xiàn)場,只需6個(gè)clk的調(diào)整時(shí)間。2、外設(shè)的引腳居然可以重影射3、RAM可以通過位綁定技術(shù)按位來訪問4 程序分析4.1 程序流程圖 4-1程
30、序整體流程圖4.2 代碼分析4.2.1 lcd顯示功能void TaskMessageLCD(void *pParam)err=OS_ERR_NONE; 定義異常,為傳參數(shù)做準(zhǔn)備PUTword8x16(0,0,23,1);/xPUTchar16x16(0,1,2); /軸PUTword8x16(1,0,24,1);/yPUTchar16x16(1,1,2); /軸PUTword8x16(2,0,25,1);/zPUTchar16x16(2,1,2); /軸PUTword8x16(3,0,6,0);/gPUTword8x16(3,1,18,0);/sPUTword8x16(3,2,25,0);/
31、zPUTword8x16(3,3,25,0);/zPUTchar16x16(3,3,0); /高PUTchar16x16(3,4,1);/尚代碼解析:通過PUTchar16x16(a,b,c)定義字符,通過改變a,b的數(shù)值來改變數(shù)據(jù)在LCD顯示屏上的位置(a為X軸坐標(biāo),b為Y軸坐標(biāo))。改變C的排位。PUTword8x16(a,b,c,d)為定義字母,通過改變A,B 的數(shù)據(jù)來改變在LCD顯示屏上的位置,通過改變C的數(shù)值來獲取A-Z的26個(gè)英文字母字模并顯示,改變D在決定數(shù)據(jù)的大小寫,0為小寫字母,1為大寫字母。4.2.2 按鍵功能void UserTaskKEY(void *pParam)key
32、_i=0;/把按鍵置0MyEventSem=OSSemCreate(0);/創(chuàng)建信號量,為了信號之間的通信做準(zhǔn)備 while(1)OSTimeDly(wait1); /延時(shí)為1個(gè)時(shí)鐘滴答if(!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15)/按下按鍵來控制pin=15口OSSemPost(MyEventSem);代碼解析:設(shè)置一個(gè)按鍵,用while語句設(shè)置一個(gè)時(shí)鐘延時(shí),if語句控制pin=15口。4.2.3 LED燈控制功能void UserTaskLED(void *pParam)key_mark=0;/設(shè)置key_mark變量err=0;/異常為0 OST
33、imeDly(wait1); /延時(shí)為1個(gè)時(shí)鐘滴答while(1)/循環(huán)OSSemPend(MyEventSem,0,&err); /*電平翻轉(zhuǎn)*/if(key_mark=0)/如果變量為0GPIO_SetBits(GPIOE, GPIO_Pin_4);/pin4,5口LED燈不亮GPIO_SetBits(GPIOE, GPIO_Pin_5);key_mark=1;/標(biāo)志位elseGPIO_ResetBits(GPIOE, GPIO_Pin_4); /pin4,5口LED燈亮GPIO_ResetBits(GPIOE, GPIO_Pin_5); key_mark=0; /標(biāo)志位代碼解析:設(shè)置ke
34、y mark變量,key mark為布爾量,通過電平的反轉(zhuǎn)改變,用if語句判斷key mark的值控制LED燈的亮滅。4.2.4 加速度傳感功能void TaskMessageMPU(void *pParam) err=OS_ERR_NONE; scount=1; myMBox=OSMboxCreate(&scount);/創(chuàng)建郵箱 OSMboxPend(myMBox,0,&err); /請求消息,若不存在則堵塞 while(1) OSTimeDly(wait2);/ 延時(shí)1個(gè)時(shí)鐘滴答scount=GetData(ACCEL_XOUT_H)/16384;/將X傳感器的值存儲(chǔ)到scount中OSMboxPost(myMBox,&scount);/將消息發(fā)送接收郵箱里scount=GetData(ACCEL_YOUT_H)/16384;OSMboxPos
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介鋪面出售合同范本
- 2025年度進(jìn)口建筑材料采購合同
- 2025年度公司合同管理培訓(xùn)與咨詢服務(wù)合同
- 公廁改造施工合同范本
- 倆人合伙協(xié)議合同范例
- 關(guān)于編制太陽能光伏發(fā)電項(xiàng)目可行性研究報(bào)告
- 上海金山貨車租賃合同范例
- 關(guān)于圍巾合同范本
- 醫(yī)務(wù)人員合同范例
- 2025年度職業(yè)教育中心實(shí)訓(xùn)設(shè)備更新合同
- 超長結(jié)構(gòu)及大體積混凝土專項(xiàng)施工方案
- 送達(dá)地址確認(rèn)書(樣本)
- 超前小導(dǎo)管施工作業(yè)指導(dǎo)書
- 中國律師學(xué)完整版課件全套教學(xué)ppt教程
- 守紀(jì)律講衛(wèi)生懂禮儀
- 腦控受害者解救方法
- 滁州市城市規(guī)劃管理技術(shù)規(guī)定
- 保理業(yè)務(wù)解決方案
- 圖紙會(huì)審答疑
- PCCP安裝與水壓試驗(yàn)
- 景觀生態(tài)學(xué)教學(xué)大綱(共10頁)
評論
0/150
提交評論