![三級嵌入式系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e756e55b-a7e8-4b4a-8843-d379c666dbe4/e756e55b-a7e8-4b4a-8843-d379c666dbe41.gif)
![三級嵌入式系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e756e55b-a7e8-4b4a-8843-d379c666dbe4/e756e55b-a7e8-4b4a-8843-d379c666dbe42.gif)
![三級嵌入式系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e756e55b-a7e8-4b4a-8843-d379c666dbe4/e756e55b-a7e8-4b4a-8843-d379c666dbe43.gif)
![三級嵌入式系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e756e55b-a7e8-4b4a-8843-d379c666dbe4/e756e55b-a7e8-4b4a-8843-d379c666dbe44.gif)
![三級嵌入式系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e756e55b-a7e8-4b4a-8843-d379c666dbe4/e756e55b-a7e8-4b4a-8843-d379c666dbe45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、三級嵌入式系統(tǒng)學(xué)習(xí)總結(jié)一 第一章1. 嵌入式系統(tǒng)概論嵌入式系統(tǒng)中的軟件一般都固化在只讀存儲器中,用戶不能隨意更改其中的程序功能。嵌入式系統(tǒng)的邏輯組成:1)處理器 2)存儲器 3)I/O設(shè)備與I/O接口 4)數(shù)據(jù)總線 5)軟件嵌入式處理芯片有四種類型:1)微處理器 2)數(shù)字信號處理器 3)微控制器(單片機) 4)片上系統(tǒng)微控制器MCU的低端產(chǎn)品并不會因為高端產(chǎn)品的出現(xiàn)而衰落在32位MCU中,絕大多數(shù)使用RAM內(nèi)核EDA:電子設(shè)計自動化IP核可以分為三種:軟核、硬核、固核2. 嵌入式系統(tǒng)與數(shù)字媒體計算機中常用的最廣泛的西文字符及其編碼是ASCII字符集和ASCII碼,即美國標(biāo)準(zhǔn)信息交換碼,共有12
2、8個字符,一個字符占一個字節(jié)。我國目前廣泛使用的漢字編碼國家標(biāo)準(zhǔn)有GB2312和GB18030GB2312只有6763個漢字,不夠用GB18030字符集與國際標(biāo)準(zhǔn)UCS/Unicode字符集基本兼容。GB18030采用不等長的編碼方法,單字節(jié)編碼表示ASCII碼,雙字節(jié)編碼表示漢字,與GB2312保持向下兼容,四字節(jié)編碼表示其他字符Unicode最新版本是6.3。UCS/Unicode在計算機中具體實現(xiàn)時采用不同的編碼方案,最常用的是UTF-8和UTF-16,UTF-8采用的是單字節(jié)可變長編碼;UTF-16采用的是雙字節(jié)可變長編碼文本的類型可以分為簡單文本、豐富格式文本、超文本圖像的數(shù)據(jù)量=圖
3、像水平分辨率*圖像垂直分辨率*像素深度/8(像素深度指的是每個像素用多少個二進制數(shù)來表示)數(shù)字視頻的數(shù)據(jù)量非常大,在進行傳輸時必須進行壓縮,壓縮編碼標(biāo)準(zhǔn)是國際標(biāo)準(zhǔn)化組織(ISO)制定的,其名稱為MPEG。無線局域網(wǎng)采用的協(xié)議主要是IEEE 802.11(俗稱WIFI)3. 數(shù)字通信與計算機網(wǎng)絡(luò)微波是一種300MHz-300GHz的電磁波計算機網(wǎng)絡(luò)的組成:1)計算機等智能電子設(shè)備 2)數(shù)據(jù)通信鏈路 3)通信協(xié)議 4)網(wǎng)絡(luò)軟件以太局域網(wǎng):1)發(fā)送數(shù)據(jù)設(shè)備必須把要傳輸?shù)臄?shù)據(jù)分成小塊(幀)進行傳輸,一次只能傳輸1幀;2)局域網(wǎng)中的每一個終端都有自己唯一的標(biāo)識,稱為物理地址或MAC地址,在發(fā)送的每一幀數(shù)
4、據(jù)中,必須包含自己的MAC地址和接收終端的MAC地址3)IP協(xié)議定義了主機的概念,所有主機及使用一種統(tǒng)一格式的地址標(biāo)識,稱為IP地址。4)以太局域網(wǎng)大多是由集線器或者交換機組網(wǎng)計算機網(wǎng)絡(luò)的類型:1)局域網(wǎng) 2)城域網(wǎng) 2)廣域網(wǎng)IP地址分為A、B、C三類。IP是由四段數(shù)字組成,共32位,8位一段。A類IP段0.0.0.0 到127.255.255.255 (0段和127段不使用)B類IP段128.0.0.0 到191.255.255.255C類IP段192.0.0.0 到223.255.255.255XP默認分配的子網(wǎng)掩碼每段只有255或0A類的默認子網(wǎng)掩碼255.0.0.0一個子網(wǎng)最多可以容
5、納1677萬多臺電腦B類的默認子網(wǎng)掩碼255.255.0.0一個子網(wǎng)最多可以容納6萬臺電腦C類的默認子網(wǎng)掩碼255.255.255.0一個子網(wǎng)最多可以容納254臺電腦二 第二章1. 嵌入式處理器嵌入式處理器按照指令集可以分為復(fù)雜指令集結(jié)構(gòu)和精簡指令集結(jié)構(gòu),按存儲機制可以分為馮諾依曼結(jié)構(gòu)及哈佛結(jié)構(gòu),按字長可以分為8位、16位、32位等精簡指令集結(jié)構(gòu)采用加載和存儲兩種指令對存儲器進行讀寫操作。ARM內(nèi)核采用多層次的存儲結(jié)構(gòu),在處理器與主存儲器之間加入CACHE,綜合了哈佛結(jié)構(gòu)和馮諾依曼結(jié)構(gòu)的優(yōu)點。ARM處理器的主流為32位,其主要特征如下:1)單周期操作 2)只是用加載/存儲指令訪問內(nèi)存 3)指令
6、長度固定 4)三地址指令格式 5)指令流水線格式 6)低功耗設(shè)計 ARM由三種指令集,分別是:1)ARM指令集 2)Thumb指令集 3)Thumb-2指令集2. 典型ARM處理器介紹ARM處理器分為5類,分別是:1)經(jīng)典ARM處理器 2)ARM Cortex嵌入式處理器 3)ARM Cortex實時嵌入式處理器 4)ARM Cortex應(yīng)用處理器 5)ARM專家處理器ARM Cortex處理器包括:1)Cortex-A 面向高端應(yīng)用的處理器 2)Cortex-R 面向?qū)崟r控制的處理器 3) Cortex-M 面向微控制器的處理器3. ARM處理器體系結(jié)構(gòu)ARM處理器的工作狀態(tài):1)ARM狀態(tài)
7、,即32位狀態(tài) 2)Thumb 狀態(tài),即16位狀態(tài) 3)調(diào)試狀態(tài)ARM處理器有7種工作模式,分別是1)用戶模式User 2)快速中斷模式FIQ 3)外部中斷模式IRQ 4)管理模式SVC 5)中止模式ABT 6)未定義指令模式UND 7)系統(tǒng)模式SYSARM處理器由37個寄存器,包括31個通用寄存器和6個狀態(tài)寄存器,通用寄存器中不分組的有8個,即R0-R7。ARM處理器用兩種模式存儲數(shù)據(jù),一是大端模式,即32位的高字節(jié)存放在低地址中,低字節(jié)存放在高字節(jié)中;二是小端模式,即32位的高字節(jié)存放在高地址中,低字節(jié)存放在低字節(jié)中。MMU,即存儲器管理模塊,作用是進行虛擬地址到物理地址的映射、存儲器訪問
8、權(quán)限控制MPU是存儲器保護單元4. ARM處理器指令集指令的條件碼:EQ:相等NE:不相等CS:無符號數(shù)大于或等于CC:無符號數(shù)小于HI:無符號數(shù)大于LS:無符號數(shù)小于或等于GE:帶符號數(shù)大于或等于LT:帶符號數(shù)小于GT:帶符號數(shù)小于或等于LE:帶符號數(shù)小于或等于PL:正數(shù)或0塊拷貝尋址舉例:LDMIA R0,R1,R2,R5,R9 R1ßR0, R2ßR0+4, R3ßR0+8, R4ßR0+12STMIA R0,R1-R7 R0ßR1,R0+4ßR2, R0+8ßR3,R0+12ßR4,R0+16ßR
9、5程序狀態(tài)寄存器訪問指令舉例:MRS R0,CPSR 傳送CPSR中的值到R0MSR CPSR, R0 傳送R0的值到CPSRs5. ARM匯編語言程序設(shè)計意會三 第三章1. 嵌入式系統(tǒng)硬件組成概述最小系統(tǒng)的構(gòu)成:嵌入式處理器、存儲器、復(fù)位電路、電源電路、時鐘電路、調(diào)試測試接口典型嵌入式應(yīng)用系統(tǒng)的硬件組成:最小硬件系統(tǒng)、前向通道、后向通道、人機交互通道以及相互互聯(lián)通信通道。前向通道即輸入接口,由模擬量輸入接口和數(shù)字量輸入接口組成;后巷通道即輸出接口,由模擬輸出接口和數(shù)字輸出接口組成;人機交互通道即輸入輸出接口;2. 嵌入式處理芯片AMBA(Advanced Microcontroller Bu
10、s Architecture)先進微控制器總線體系結(jié)構(gòu)AMBA規(guī)定了兩種類型的總線,分別是系統(tǒng)總線和外圍總線,通過橋接器進行連接與系統(tǒng)總線連接的部件:電源及時鐘控制器、內(nèi)核、DMA、外部存儲器控制接口、USB主機、SRAM、中斷控制器、LCD控制器;與外圍總線連接的部件:GPIO、UART、SPI、IIC、IIS、USB設(shè)備、WDT、TIMER、RTC、PWM、ADC/DAC、CAN、Ethernent。片內(nèi)程序存儲器常用Flash ROM,片內(nèi)數(shù)據(jù)存儲器常用SRAM。3. 嵌入式系統(tǒng)的存儲器嵌入式系統(tǒng)的存儲器結(jié)構(gòu):嵌入式處理器(內(nèi)部L1/L2 Cache)、主存儲器(內(nèi)存)、外部存儲器(外存
11、),Cache由SRAM承擔(dān)MROM:掩膜只讀存儲器,出廠后信息確定,無法改變;PROM:一次可編程存儲器EPROM:紫外線可擦除的只讀存儲器EEPROM:電擦除可編程存儲器FLASH ROM:閃存;NOR FLASH 和NAND FLASH是流行的閃存新存儲器:FRAM(鐵電存儲器)、MRAM(磁性存儲器)存儲器容量=單元總數(shù)*數(shù)據(jù)位數(shù)/單元并行總線的存儲器帶寬=總線頻率*數(shù)據(jù)寬度/8*傳輸次數(shù)/總線周期串行總線的存儲器帶寬=總線頻率/104. I/O接口及常用的GPIOGPIO提供的輸入具有緩沖功能,輸出有鎖存功能IIC總線有兩條數(shù)據(jù)線,分別是數(shù)據(jù)線SDA和時鐘線SCL。SCL為高,SDA
12、由高變低時啟動傳輸,SCL為高,SDA由高變低時停止傳輸。傳輸時高位在前,低位在后,傳輸?shù)牡谝粋€字節(jié)為地址,地址的最后一位指示數(shù)據(jù)傳輸方向,第9位為應(yīng)答位。總線控制遵循低電平優(yōu)先的原則。SPI是同步串行接口,一般使用四條線,分別是時鐘、輸入、輸出、片選。SPI發(fā)送數(shù)據(jù)時,數(shù)據(jù)從主機中從左向右發(fā)送給從機(主機數(shù)據(jù)左對齊),從機數(shù)據(jù)從右向左發(fā)送給主機(從機數(shù)據(jù)右對齊),發(fā)送數(shù)據(jù)時,高位在前,低位在后UART:常用于全雙工串行異步通信,發(fā)數(shù)據(jù)時,低位在前,高位在后USB:最多可以連接127個設(shè)備。USB系統(tǒng)由USB硬件和USB軟件組成。硬件中的主控制器包括一個根集線器,傳輸時采樣翻轉(zhuǎn)不歸零。采用半雙
13、工差分方式傳輸數(shù)據(jù)。觸摸屏分為電阻式和電容式5. ARM內(nèi)核典型處理器芯片S3C2410是韓國三星公司制造的微處理器,以下都是S3C2410的有關(guān)介紹電源管理模塊有正常模式、慢速模式、休眠模式、掉電模式。任何情況下復(fù)位操作均進入正常模式,在掉電模式和休眠模式下,只要有任何一個外部中斷EINT或者RTC時鐘中斷發(fā)生,均將返回到正常模式。總共由5個16位定時器timer,4個具備PWM的功能。定時器輸入時鐘頻率=PCLK/(預(yù)分頻值+1)*時鐘因子有三個UART,UBRDIV=INT(UCLK/(波特率*16)-1,UCLK可以是PCLK,也可以是UEXTCLK。看門狗定時器的技術(shù)脈沖周期為:t_
14、watchdog=1/(PCLK/(預(yù)分頻值+1)/分頻系數(shù)),計數(shù)初值為WTCON=T/t_watch_dog6. 嵌入式系統(tǒng)外部通信接口RS-485采用差分信號傳輸方式CAN總線也使用差分的方式傳輸四 第四章在uC/OS-II中,任務(wù)或者中斷服務(wù)可以通過事件控制模塊(ECB)相其他任務(wù)發(fā)出信號1. 嵌入式系統(tǒng)的軟件組成嵌入式系統(tǒng)的特點:軟件與硬件一體化、軟件代碼時空效率要求高、軟件可剪裁、軟件應(yīng)用環(huán)境復(fù)雜、軟件開發(fā)難度大、軟件面向用戶、面向產(chǎn)品、面向應(yīng)用、軟件產(chǎn)業(yè)高度分散、軟件具有較長的生命周期。嵌入式系統(tǒng)的軟件結(jié)構(gòu):簡單的輪詢結(jié)構(gòu)(只進行查詢操作)、 帶中斷的輪詢結(jié)構(gòu)、監(jiān)控式操作系統(tǒng)+應(yīng)
15、用軟件的結(jié)構(gòu)、通用嵌入式操作系統(tǒng)+應(yīng)用軟件的結(jié)構(gòu)。高端嵌入式系統(tǒng)的軟件結(jié)果層次示例:硬件層、硬件抽象層、操作系統(tǒng)層、中間件層、應(yīng)用軟件層。中間件是指除了操作系統(tǒng)內(nèi)核、設(shè)備驅(qū)動程序和應(yīng)用軟件之外的系統(tǒng)軟件。硬件抽象層(Hardware Abstract Layer HAL)和板極支持包(Board Support Package BSP)是嵌入式系統(tǒng)的底層軟件,引入HAL對硬件進行抽象,通過硬件抽象層應(yīng)用編程接口(HAL API)向上提供服務(wù)。BSP在系統(tǒng)復(fù)位之后負責(zé)系統(tǒng)軟硬件環(huán)境的初始化,包括三個方面的內(nèi)容,一是系統(tǒng)復(fù)位時的硬件初始化,包括處理器芯片的初始化和電路板的初始化,二是為操作系統(tǒng)提供
16、硬件相關(guān)的驅(qū)動程序支持,三是引導(dǎo)加載操作系統(tǒng)。BSP是操作系統(tǒng)正常運行的前提,其效率和穩(wěn)定性直接影響整個系統(tǒng)的性能及穩(wěn)定性。引導(dǎo)加載程序(引導(dǎo)程序)bootloader是底層軟件的一部分,嵌入式系統(tǒng)上電后首先運行引導(dǎo)加載程序,進行系統(tǒng)上電自檢、硬件初始化、建立存儲空間映射、配置系統(tǒng)參數(shù)、建立上層軟件運行環(huán)境,加載和啟動操作系統(tǒng)等等。嵌入式操作系統(tǒng)的加載方式:1)在ROM中直接運行操作系統(tǒng)代碼 2)在RAM中運行操作系統(tǒng)代碼 3)從外存儲器加載操作系統(tǒng)代碼運行 4)從通信端口加載操作系統(tǒng)代碼運行。引導(dǎo)加載程序的運行過程,一是讓嵌入式系統(tǒng)正常運起來,與處理器體系結(jié)構(gòu)相關(guān)的硬件初始化和板極初始化等操
17、作通常在第一步完成,一般用匯編語言來寫。第二是實現(xiàn)操作系統(tǒng)加載的功能,用C語言實現(xiàn)。設(shè)備驅(qū)動程序是指直接與硬件相互作用并控制硬件的軟件,是對硬件操作的抽象。2. 嵌入式操作系統(tǒng)實時系統(tǒng)(Real-Time System)是必須在有限和確定的時間內(nèi)對外部事件做出響應(yīng)的信息系統(tǒng)。實時系統(tǒng)的關(guān)鍵特性:1)時間約束性 2)可預(yù)測性 3)可靠性 4)交互性硬實時任務(wù):必須在給定的時間內(nèi)完成,超過時限會引起重大的錯誤軟實時任務(wù):超過時限不會引發(fā)致命錯誤,而是造成任務(wù)的服務(wù)質(zhì)量下降準(zhǔn)實時任務(wù):通常允許偶爾錯過最后時限,若超過時限,所進行的操作或計算沒有任何意義。實時操作系統(tǒng)采用如下的機制來保持對實時任務(wù)的響
18、應(yīng)和處理的時間確定性:1)事件驅(qū)動 2)多級中斷嵌套處理 3)細粒度的任務(wù)優(yōu)先級控制 4)實施搶占式調(diào)度。實時操作系統(tǒng)的實時性指標(biāo):評價實時操作系統(tǒng)的實時性最重要的指標(biāo)是響應(yīng)時間,即系統(tǒng)從事件請求開始到任務(wù)完成的時間間隔。除此之外,還有以下的幾點:1)中斷延遲時間:從接收到可屏蔽中斷請求到操作系統(tǒng)做出響應(yīng)并轉(zhuǎn)入中斷服務(wù)程序所需要的最長時間2)任務(wù)切換時間:操作系統(tǒng)在兩個獨立且具有相同優(yōu)先級的就緒態(tài)任務(wù)之間切換所需要的時間3)任務(wù)搶占時間:系統(tǒng)將優(yōu)先權(quán)從低優(yōu)先級的任務(wù)轉(zhuǎn)移到高優(yōu)先級任務(wù)所需要花費的時間。嵌入式操作系統(tǒng)的特點:代碼固化存儲、可裁剪、實時性、強穩(wěn)定性、硬件適應(yīng)性。嵌入式操作系統(tǒng)的分類
19、:1)按實時性分硬實時操作系統(tǒng):如VxWorks、RTEMS、QNX、uC/OS-II、Nucleus;軟實時操作系統(tǒng):如WinCE、多種嵌入式Linux系統(tǒng)2)按開發(fā)方式:專門為嵌入式環(huán)境開發(fā)的嵌入式操作系統(tǒng)從通用計算機操作系統(tǒng)移植而來的嵌入式系統(tǒng)3)按商業(yè)模式:免費的嵌入式操作系統(tǒng)商業(yè)嵌入式操作系統(tǒng)操作系統(tǒng)是由內(nèi)核、用戶界面、中間件、使用程序等組件組成的,內(nèi)核起著最重要的作用,其作用是管理系統(tǒng)資源,支持多任務(wù)并發(fā)執(zhí)行。單內(nèi)核可以分為整體結(jié)構(gòu)和分層結(jié)構(gòu)兩種類型。單內(nèi)核的優(yōu)點是性能較好系統(tǒng)各個組件可以相互調(diào)用。缺點是占用資源多,維護工作量大。單內(nèi)核的操作系統(tǒng)有: Unix、BSD Unix、L
20、inux、MS-DOS、Windows 9x(Windows 95/98/ME)、Windows CE、Android操作系統(tǒng)。微內(nèi)核結(jié)構(gòu):操作系統(tǒng)僅僅將必須的基本功能放入內(nèi)核,其他功能在內(nèi)核之外。采用純粹微內(nèi)核的操作系統(tǒng)有AIX、Mach、Minix、VxWorks、QNX等。常見的嵌入式操作系統(tǒng):VxWorks:采用的是微內(nèi)核結(jié)構(gòu)QNX:類Unix的實時操作系統(tǒng),是非常成功的微內(nèi)核操作系統(tǒng),其內(nèi)核僅僅提供進程調(diào)度、進程間通信、底層網(wǎng)絡(luò)通信和中斷處理。Nucleus PLUS:搶占式多任務(wù)商業(yè)操作系統(tǒng)內(nèi)核RTEMS:實時多處理器系統(tǒng)TinyOS:專門為硬件資源極為有限的無線傳感器網(wǎng)絡(luò)應(yīng)用而量
21、身定制的操作系統(tǒng)eCOS:嵌入式可配置操作系統(tǒng)Linux是單內(nèi)核結(jié)構(gòu),采用模塊化設(shè)計,支持內(nèi)核線程。Linux內(nèi)核可以分為三個層次:最上層是系統(tǒng)調(diào)用接口、中間層是內(nèi)核的核心部分、最下層是BSP。Linux內(nèi)核內(nèi)部包含了若干相關(guān)的組成部件,包括1)初始化部件 2)進程調(diào)度器 3)內(nèi)存管理器 4)虛擬文件系統(tǒng) 5)網(wǎng)絡(luò)接口 6)進程間通信 7)可加載模塊 8)設(shè)備驅(qū)動程序Linux實時化技術(shù)的三個途徑:1)內(nèi)核補丁方式 2)雙內(nèi)核方式 3)超微內(nèi)核方式嵌入式linux發(fā)行版本:uClinux、RTlinux、Monta Vista Linux、Wind River Linux、RTAI、Xenom
22、ai。Android系統(tǒng)采用堆層式軟件架構(gòu),分為四層,從底層到高層分別是Linux內(nèi)核、系統(tǒng)運行庫、應(yīng)用程序框架和應(yīng)用程序。其中,系統(tǒng)運行庫由android運行環(huán)境和組件庫兩部分組成。IOS操作系統(tǒng)架構(gòu)分為四個層次,分別是核心操作系統(tǒng)層、核心服務(wù)層、媒體層、觸控界面層。3. uC/OS-II嵌入式操作系統(tǒng)uC/OS-II的特點:1)公開源碼的高質(zhì)量實時內(nèi)核2)可以移植3)可裁剪、可固化4)時間確定性5)多任務(wù)6)搶占式內(nèi)核7)多種系統(tǒng)服務(wù)uC/OS-II的源代碼主要有以下幾部分構(gòu)成:1) 系統(tǒng)核心2) 任務(wù)管理3) 時鐘管理4) 任務(wù)同步與任務(wù)間通信5) 內(nèi)存管理6) 處理器相關(guān)代碼在uC/O
23、S-II中,任務(wù)是操作系統(tǒng)的基本調(diào)度單位,由操作系統(tǒng)內(nèi)核管理。任務(wù)由三部分構(gòu)成,分別是任務(wù)的程序代碼、任務(wù)堆棧和任務(wù)控制塊。每一個任務(wù)的棧空間大小不同,在文件OS_CPU.H中定義了一個數(shù)據(jù)類型OS_STK,在應(yīng)用程序中定義任務(wù)堆棧的棧區(qū)只需要聲明一個OS_STK即可,如OS_STK TaskStkTASK_STK。uC/OS-II的任務(wù)處于五種狀態(tài)之一,分別是等待態(tài)、休眠態(tài)、就緒態(tài)、運行態(tài)和被中斷態(tài)。休眠態(tài)指任務(wù)代碼駐留在內(nèi)存中還沒有交給內(nèi)核調(diào)度的狀態(tài);就緒態(tài)指任務(wù)已經(jīng)具備運行的條件但因優(yōu)先級比正在運行的任務(wù)低而暫時不能運行的狀態(tài);運行態(tài)指任務(wù)已獲得處理器使用權(quán)而正在運行的狀態(tài);等待態(tài)也稱為
24、掛起,指正在運行的程序因為等待某一事件發(fā)生而將處理器的使用權(quán)讓出給其他任務(wù)而自身掛起;被中斷態(tài)指因處理器執(zhí)行中斷而被暫停運行的任務(wù)狀態(tài)。uC/OS-II可以管理64個任務(wù),有64個優(yōu)先級,0是最高優(yōu)先級別。最低優(yōu)先級別由OS_LOWEST_PRIO來定義。任務(wù)分為用戶任務(wù)和系統(tǒng)任務(wù),系統(tǒng)預(yù)定義了兩個系統(tǒng)任務(wù)為應(yīng)用程序服務(wù),即空閑任務(wù)和統(tǒng)計任務(wù)。系統(tǒng)總是把最低優(yōu)先級固定賦給空閑任務(wù)。uC/OS-II采用的是基于優(yōu)先級的任務(wù)調(diào)度。內(nèi)核通過OSIntExit()判斷是否存在更高優(yōu)先級的就緒任務(wù)。利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()實現(xiàn)關(guān)中斷和開中斷。利用
25、函數(shù)OSSchedLock()和OSSchedUnLock()給調(diào)度器上鎖和解鎖。通過函數(shù)OSStart()開始任務(wù)調(diào)度之前創(chuàng)建函數(shù)OSTaskCreate()和OSTaskCreateExt()都可以創(chuàng)建任務(wù)函數(shù)OSTaskDel()既可以刪除任務(wù)本身,也可以刪除其他的任務(wù)。刪除自己的調(diào)用形式為:OSTaskDel(OS_PRIO_SELF)函數(shù)OSTaskDelRel()的作用是讓某個任務(wù)使用完資源后先釋放資源,再執(zhí)行OSTaskDel來刪除自己函數(shù)OSTaskSuspend()可以掛起一個任務(wù),被掛起的任務(wù)只能等待其他的任務(wù)調(diào)用OSTaskResume()函數(shù)才能實現(xiàn)任務(wù)恢復(fù)函數(shù)OSTi
26、meTick()返回是否等待超時或等待事件的任務(wù)是否超時用UNIT32U OSTimeGet()獲得tick計數(shù)器的當(dāng)前值,可以調(diào)用OSTimeSet()改變tick計數(shù)器的當(dāng)前值。通過OSTimeDly()或者OSTimeDlyHMSM()延遲處于運行態(tài)的任務(wù)由OSSemCreate()函數(shù)創(chuàng)建信號量由OSSemDel()函數(shù)刪除一個信號量由OSSemPost()釋放信號量由OSSemPend()等待信號量由OSSemAccept()無等待的請求信號量由OSSenQuery()查詢信號量狀態(tài)調(diào)用OSInit()進行內(nèi)核初始化五 第五章1. 開發(fā)嵌入式系統(tǒng)的基礎(chǔ)知識(1) 嵌入式系統(tǒng)的開發(fā)過程
27、1) 需求分析與規(guī)格說明2) 系統(tǒng)設(shè)計:根據(jù)規(guī)格說明書中所描述的系統(tǒng)需要實現(xiàn)的功能,確定如何實現(xiàn)這些功能的硬件和軟件結(jié)構(gòu)。3) 構(gòu)件設(shè)計:設(shè)計或者選擇符合系統(tǒng)結(jié)構(gòu)和規(guī)格說明中所需要的具體構(gòu)件,有通用的構(gòu)件,如CPU、存儲器芯片,也有專用的構(gòu)件,如AX88796(不知道是什么玩意)4) 系統(tǒng)集成與測試(2) 嵌入式系統(tǒng)的開發(fā)平臺與工具嵌入式系統(tǒng)的開發(fā)特點1) 使用宿主機-目標(biāo)機的開發(fā)架構(gòu)2) 與底層硬件控制程序的關(guān)系密切3) 軟硬件資源受到限制4) 需要固化程序IDE(Integrated Development Environment):集成開發(fā)環(huán)境(3) 嵌入式系統(tǒng)的調(diào)試四種調(diào)試技術(shù):1)
28、在線仿真器(In-Circuit Emulator ICE):ICE具有與索要開發(fā)的嵌入式系統(tǒng)相同的嵌入式處理器,進行調(diào)試時,用在線仿真器取代被調(diào)試系統(tǒng)的處理器。2) 片上調(diào)試技術(shù)JTAG3) 駐留監(jiān)控軟件調(diào)試:使用駐留監(jiān)控軟件(Resident Monitors),即固化在目標(biāo)機ROM中的程序,在目標(biāo)機中運行。4) 指令集模擬器(Instruction Set Simulator ISS)在宿主機上模擬應(yīng)用程序在目標(biāo)機上潤興行為的一個軟件工具。主要應(yīng)用于沒有目標(biāo)機開發(fā)板硬件、有開發(fā)板硬件,但使用開發(fā)板成本高、被調(diào)試的程序模塊不需要在實際開發(fā)板上執(zhí)行、對模塊代碼進行語法檢查、避免因?qū)τ布皇煜?/p>
29、而在調(diào)試硬件方面耗費過多精力。常用的兩種指令集模擬器:ARMulator、SkyEye2. 系統(tǒng)開發(fā)工具軟件(1) ADS1.2工具軟件(ARM Developer Suite):支持開發(fā)的嵌入式應(yīng)用軟件通常是無操作系統(tǒng)的,即使有,也是uC/OS-II這樣的小型系統(tǒng)。ADS1.2的工程項目:一個工程項目至少應(yīng)包括一個生產(chǎn)目標(biāo),即用于生成特定輸出文件的生成選項以及所用的全部文件的集合。生成選項包括匯編選項、編譯選項、連接選項和連接后選項。三個可執(zhí)行文件的模板:1) Debug:生成的額輸出文件包括所有調(diào)試信息,用于在開發(fā)過程中使用;2) Release:生成的輸出文件中不包括調(diào)試信息,用于生成實
30、際發(fā)行的軟件3) DebugRel:生成的輸出文件包含了基本的調(diào)試信息。當(dāng)?shù)刂酚成潢P(guān)系比較簡單時,使用編譯、連接選項來確定輸入文件的連接順序當(dāng)?shù)刂酚成潢P(guān)系比較復(fù)雜時,使用scatter(分散加載)格式的文件來確定輸入文件的連接順序。連接中的地址映射:ADS把編譯后的目標(biāo)文件信息按照3種存儲區(qū)域類型進行劃分,分別是:1) RO端段:代碼存儲區(qū)和常數(shù)存儲區(qū),具有只讀的性質(zhì)2) RW段:指初始值為非0的全局變量數(shù)據(jù)區(qū),具有可讀可寫的性質(zhì)3) ZI段:指初始值為0的全局變量數(shù)據(jù)區(qū),包括未初始化的全局變量,具有可讀可寫的性質(zhì)。下載時域和運行時域:下載時域是下載時的存儲空間;運行時域是運行時的存儲空間。1
31、) simple連接類型:應(yīng)用于地址映射簡單的工程項目。RW base文本框配置的是RW字段的和ZI字段運行時域的地址,輸入的地址值必須是字對準(zhǔn)的,即能被4整除。2) 對地址映射關(guān)系較為復(fù)雜的項目,使用scatter連接類型,需要提供一個scatter格式的文件(.scf)。配置文件是一個文本文件,使用BNF語法來進行描述。在scatter類型下,下載時域的語法結(jié)構(gòu)如下:Load_name Base_Add Attribute sizeLoad_name是下載時域的名稱,是下載時域的唯一標(biāo)識。Base_Add是下載時域的首地址,Attribute是下載時域的數(shù)屬性,可省略。size是下載時域的
32、容量大小。在scatter類型下,運行時域的描述語法結(jié)構(gòu)如下:Exec_name Base_Add Attribute SizeExec_name是運行時域的名稱。屬性可省略。在scatter類型下,輸入端的描述結(jié)構(gòu)如下:*代表若干個任意字符,?代表一個任意字符Load_1 0x0000 0x8000Exec_1 0x0000 0x8000*(+RO)Exec_2 0x10000 0x6000*(+RW,+ZI)上述是一個簡單的配置文件,定義了一個下載時域,名稱為Load_1,首地址是0x0000,域的容量是0x8000,定義了兩個運行時域,第一個名稱為Exec_1,首地址為0x0000,容量
33、為0x8000,域中包含了所有的代碼和常數(shù),即包含了所有RO屬性的輸入段。第二個域中包含了所有的RW、ZI屬性的輸入段。(2) RVDS(RealView Development Suite)要使用RVDS來調(diào)試程序,必須使用RealView-ICE仿真器RVDS的功能模塊包括工程管理器(IDE)、編譯鏈接器(RVCT)、調(diào)試器(RVD)和指令集仿真器(RVISS)等。RVDS能夠記錄ARM CPU從開始執(zhí)行程序到停止執(zhí)行程序這段時間所執(zhí)行的所有操作,稱為Trace功能;而Profile功能指RVDS可以對Trace功能所記錄的內(nèi)容進行性能分析。(3) GNU(GNUs Not Unix)是一
34、種常用于基于Linux操作系統(tǒng)的嵌入式軟件的工具套件的簡稱。GCC是GNU開發(fā)工具套件中的核心工具軟件,是一種針對linux操作系統(tǒng)環(huán)境下運行程序的編譯工具。它由源文件生成可執(zhí)行文件的過程是預(yù)處理,編譯,匯編,連接。匯編階段,生成二進制目標(biāo)文件,以為文件的結(jié)尾。Linux操作系統(tǒng)中的可執(zhí)行文件沒有統(tǒng)一的文件后綴,按文件的屬性來進行區(qū)分,若GCC生成可執(zhí)行文件時沒有指定文件名,則GCC生成一個名為a.out的可執(zhí)行文件。GCC所規(guī)定的文件后綴與文件類型的對應(yīng)關(guān)系:.c:用C語言編寫的源程序文件.a:由目標(biāo)文件構(gòu)成的源文件.C、.cc、.cxx:用C+語言編寫的源文件.h:頭文件,可以被其他源文件
35、包含.i:已經(jīng)預(yù)處理過的C語言編寫的源程序文件.ii:已經(jīng)過預(yù)處理的C+語言編寫的源程序文件.o:編譯及匯編后生成的目標(biāo)文件.s:編譯后生成的匯編語言程序.S:匯編語言編寫的源文件程序。GCC的命令及參數(shù):基本命令格式為gcc options filenames,其中,options代表編譯命令所需要的參數(shù),filename表示命令中所涉及到的文件名稱。針對不同的嵌入式處理器,GCC的命令格式不同,如針對ARM,GCC基本命令格式為:arm-linux-gcc options filenamesGCC命令的參數(shù)(針對ARM)-c:僅完成編譯操作而不進行編譯操作,編譯器把輸入的文件生成后綴為.o
36、的目標(biāo)文件-E:僅完成預(yù)處理操作而不進行后續(xù)處理操作,生成后綴為i的文件-S:僅完成預(yù)處理操作、編譯操作而不進行后續(xù)操作,輸出后綴為.s的文件-o filename_out:確定編譯后的輸出文件名為filename_out,可以根據(jù)自己的需求確定生成的輸出文件名稱,但不能與源文件名稱相同。若不指定,則輸出為a.out-g:編譯時產(chǎn)生一個用于調(diào)試的符號表,對元層序進行調(diào)試-O:對程序進行優(yōu)化編譯-I dirname:將目錄名為dirname的目錄加入到源程序頭文件的目錄列表中-L dirname: 將目錄為dirname的目錄加入到庫文件的目錄列表中假設(shè)源文件名稱為test.c,以下是幾個常見的GCC編譯命令:arm-linux-gcc-o test test.c:生成文件名為test的輸出文件Arm-linux-gcc-c-o test.o test.c:生成文件名為test.o的目標(biāo)文件Arm-linux-gcc-S-o test.s test.c:生成文件名為te
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 居住證申請書范本
- 養(yǎng)老金申請書
- 中國雙速雙柱塞漏斗注漿泵項目投資可行性研究報告
- 申請設(shè)備申請書
- 2025年度園藝用品研發(fā)與銷售合作協(xié)議
- 農(nóng)村貧困低保申請書
- 2025年圓管行業(yè)深度研究分析報告
- 2025年中國棓丙酯注射液行業(yè)市場調(diào)查研究及投資潛力預(yù)測報告
- 孤兒證申請書
- 2025年度婚介機構(gòu)會員積分兌換服務(wù)合同
- 2024年數(shù)據(jù)編織價值評估指南白皮書-Aloudata
- 四川省算力基礎(chǔ)設(shè)施高質(zhì)量發(fā)展行動方案(2024-2027年)
- 人教版八年級英語上冊Unit1-10完形填空閱讀理解專項訓(xùn)練
- 護理工作中的人文關(guān)懷
- 完整液壓系統(tǒng)課件
- 2024年山東省青島市中考道德與法治試題卷(含答案及解析)
- 2005室外給水管道附屬構(gòu)筑物閥門井05S502
- 薪酬管理制度、員工薪資結(jié)構(gòu)規(guī)定、薪酬福利管理制度
- 芯片設(shè)計基礎(chǔ)知識題庫100道及答案(完整版)
- 00015-英語二自學(xué)教程-unit2
- 2024變電站無人機巡檢系統(tǒng)規(guī)范第2部分:檢測規(guī)范
評論
0/150
提交評論