版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)三級(jí)嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)考點(diǎn)總結(jié)嵌入式系統(tǒng)硬件組成概述嵌入式最小硬件系統(tǒng):嵌入式處理器運(yùn)行必備條件的硬件電路與嵌入式處理器共同構(gòu)成了嵌入式最小硬件系統(tǒng)。嵌入式最小硬件系統(tǒng)組成:嵌入式處理器、時(shí)鐘電路、電源電路、復(fù)位電路、存儲(chǔ)器、調(diào)試測(cè)試接口電源電路:嵌入式系統(tǒng)常用的電源模塊式交流變直流(AC-DC)模塊、直流到直流(DC-DC)模塊以及低壓差穩(wěn)壓器(LDO)。穩(wěn)壓器包括普通穩(wěn)壓器和低壓差穩(wěn)壓器LDO。78XX系列屬于普通穩(wěn)壓器,LM2576/2596為開(kāi)關(guān)穩(wěn)壓芯片,CCAT6219/AS2815/1117/2908等屬于低壓差穩(wěn)壓器。穩(wěn)壓器最大的特點(diǎn)是低噪聲、低成本、紋波小、精度高、電路簡(jiǎn)單。時(shí)鐘電路:幾乎所有的嵌入式處理器本質(zhì)上均為同步時(shí)序電路,需要時(shí)鐘信號(hào)才能按照節(jié)拍正常工作。復(fù)位電路:嵌入式處理器都有一個(gè)系統(tǒng)復(fù)位引腳為nRESET或RESET,n表示低電平復(fù)位,不帶n的表示高電平復(fù)位。JTAG測(cè)試接口:聯(lián)合測(cè)試行為小組(JTAG)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,主要用于芯片內(nèi)部測(cè)試以及對(duì)系統(tǒng)進(jìn)行仿真和調(diào)試。測(cè)試訪問(wèn)口:TAP基于ARM內(nèi)核的電性嵌入式應(yīng)用系統(tǒng)硬件組成:嵌入式最小硬件系統(tǒng)、前向通道、后向通道、人機(jī)交互通道、以及相互互聯(lián)通信通道等組成。前向通道,即輸入接口,包隨機(jī)存取存儲(chǔ)器包括靜態(tài)和動(dòng)態(tài)兩種形式,即SRAM和DRAM,都是易失性存儲(chǔ)器。目前嵌入式處理器內(nèi)嵌的數(shù)據(jù)存儲(chǔ)器基本都采用SRAM,外部擴(kuò)展的存儲(chǔ)器大都采用DRAM及改進(jìn)型(DDRSDRAM、DDR2SDRAM、DDR3、DDR4)只讀存儲(chǔ)器MROM、PROM、EPROM、EEPROM、FlashROM、NORFlash和NANDFlashNANDFlashROM以頁(yè)(行)為單位隨機(jī)存取,速度慢,變成復(fù)雜,大多作為數(shù)據(jù)存儲(chǔ)器使用。(數(shù)碼相機(jī)、MP3隨身聽(tīng)記憶卡、U盤(pán))NORFlashROM以字節(jié)為單位隨機(jī)存取,寫(xiě)入和擦除速度較慢。鐵電存儲(chǔ)器:非易失,可取代SRAM和Flash存儲(chǔ)器磁性存儲(chǔ)器:可取代Flash存儲(chǔ)器存儲(chǔ)器主要性能指標(biāo)存儲(chǔ)器的存取速度、存儲(chǔ)容量、帶寬容量:對(duì)于內(nèi)存容量而言,單位之間換算以2^10=1024倍表示,對(duì)于外存容量(磁盤(pán)、U盤(pán)、Flash存儲(chǔ)卡),以10^3=1000倍表示。內(nèi)存儲(chǔ)器容量取決于存儲(chǔ)單元的個(gè)數(shù)和存儲(chǔ)器各單元的位數(shù):內(nèi)存容量=單元總數(shù)*數(shù)據(jù)位數(shù)/單元存儲(chǔ)芯片的容量完全取決于存儲(chǔ)器芯片的地址線條數(shù)和數(shù)據(jù)線的位數(shù)。V=2^m*n(L:?jiǎn)卧獋€(gè)數(shù),n:數(shù)據(jù)線位條數(shù),m:地址條數(shù),m=log2L)存取時(shí)間:從CPU給出有效的存儲(chǔ)器地址開(kāi)始到存儲(chǔ)器讀出數(shù)據(jù)所需要的時(shí)間。帶寬:存儲(chǔ)器每秒可傳輸?shù)淖畲髷?shù)據(jù)總量。并行總線的存儲(chǔ)器帶寬:帶寬=總線頻率*數(shù)據(jù)寬度/8*傳輸次數(shù)/總線周期(B/s)串行總線帶寬=總線頻率*1/10以10位為一個(gè)數(shù)據(jù)幀(含一字節(jié)數(shù)據(jù))片內(nèi)存儲(chǔ)器片內(nèi)Cache、片內(nèi)FlashROM(嵌入式微控制器內(nèi)部集成的程序存儲(chǔ)器)、片內(nèi)SRAM(集成的數(shù)據(jù)存儲(chǔ)器,SRAM屬于易失性存儲(chǔ)器)、片內(nèi)E2PROM(作為長(zhǎng)期保存重要數(shù)據(jù)的存儲(chǔ)器,屬于非易失性)、片內(nèi)FRAM(具有RAM和ROM的全部特點(diǎn),是當(dāng)前嵌入式微控制器內(nèi)部的主要存儲(chǔ)器之一)片外存儲(chǔ)器外部存儲(chǔ)器的擴(kuò)展是靠ARM內(nèi)核提供的高帶寬外部存儲(chǔ)器控制器接口完成的。片外程序存儲(chǔ)器:NORFlash、NANDFlash片外數(shù)據(jù)存儲(chǔ)器:SDRAM、DDR/DDR2/DDR3/DDR4外部存儲(chǔ)設(shè)備SM卡、CF卡、MMC、SD卡、記憶棒、XD卡、U盤(pán)、微硬盤(pán)3.4I/O接口及常用I/O設(shè)備通用I/O接口GPIO嵌入式系統(tǒng)外部通信接口基于UART的RS-232/RS-485接口RS-232接口:傳輸距離可以達(dá)到15m左右,無(wú)法消除共模干涉。RS-485接口:采用差分信號(hào)傳輸方式,具有很強(qiáng)的抗共模干擾能力,傳輸距離可達(dá)1200m,不能構(gòu)成多主系統(tǒng)CAN總線接口廣泛應(yīng)用于工控領(lǐng)域以及要求抗干擾和實(shí)時(shí)性強(qiáng)的場(chǎng)合;采用差分創(chuàng)術(shù),控制器內(nèi)置CRC教研,傳輸可靠性強(qiáng),可構(gòu)成多主多從系統(tǒng);CAN總線的數(shù)據(jù)幀由7不同的域組成:幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC域、應(yīng)答域。幀結(jié)尾,其中數(shù)據(jù)域的長(zhǎng)度可選為0-8B以太網(wǎng)通信接口:分為基于內(nèi)置以太網(wǎng)控制器的以太網(wǎng)接口(以太網(wǎng)控制器MAC層,物理層PHY層的收發(fā)器電路)和不帶內(nèi)置以太網(wǎng)控制器的以太網(wǎng)接口常用無(wú)線通信接口GPS、GPRS、WiFi、藍(lán)牙以及通用射頻通信模塊等GPS模塊:必須具備GPS終端、傳輸網(wǎng)絡(luò)和監(jiān)控平臺(tái)三個(gè)要素。GPRS模塊:以封包(Packet,也稱為分組)方式進(jìn)行數(shù)據(jù)傳輸。WiFi模塊:使用IEEE802.11系列協(xié)議,內(nèi)置無(wú)線網(wǎng)絡(luò)協(xié)議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、TTL電平、USB接口或SPI接口數(shù)據(jù)到無(wú)線網(wǎng)絡(luò)之間的轉(zhuǎn)換。藍(lán)牙模塊:支持設(shè)備短距離通信(10m內(nèi))的無(wú)線低速(1Mb/s)通信技術(shù),基于串口UART或USB其他無(wú)線模塊:射頻無(wú)線收發(fā)模塊,如Si4432嵌入式系統(tǒng)的軟件組成嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的軟件的相同之處指的是:嵌入式系統(tǒng)具備引導(dǎo)加載程序、外部設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧、圖形用戶界面、數(shù)據(jù)庫(kù)、各種各樣的應(yīng)用程序等區(qū)別:嵌入式系統(tǒng)的軟件配備沒(méi)有通用計(jì)算機(jī)那樣多;通用計(jì)算機(jī)的軟件系統(tǒng)無(wú)疑以操作系統(tǒng)為核心,不可或缺;對(duì)于數(shù)據(jù)庫(kù)、圖形用戶界面、因特網(wǎng)瀏覽器、媒體播放器等基于操作系統(tǒng)的外圍工具軟件,如果運(yùn)行在通用計(jì)算機(jī)上則具有內(nèi)部結(jié)構(gòu)細(xì)致化、運(yùn)行效率高效化、代碼重量化的特點(diǎn)。嵌入式操作系統(tǒng)RTOS:實(shí)時(shí)操作系統(tǒng)IEEE:美國(guó)電氣電子工程師協(xié)會(huì)實(shí)時(shí)系統(tǒng)的屬性時(shí)間約束性。分為硬實(shí)時(shí)系統(tǒng)、軟實(shí)時(shí)系統(tǒng)。常見(jiàn)的系統(tǒng)大多是軟實(shí)時(shí)系統(tǒng)??深A(yù)測(cè)性;可靠性按響應(yīng)時(shí)間將實(shí)時(shí)系統(tǒng)分為三類:強(qiáng)實(shí)時(shí)系統(tǒng):響應(yīng)時(shí)間在毫秒級(jí)或微秒及。普通實(shí)時(shí)系統(tǒng):響應(yīng)時(shí)間一般在幾秒;弱實(shí)時(shí)系統(tǒng):響應(yīng)時(shí)間一般在數(shù)十秒。實(shí)時(shí)操作系統(tǒng)IEEE的實(shí)時(shí)UNIX分委會(huì)認(rèn)為實(shí)時(shí)操作系統(tǒng)應(yīng)該具備7個(gè)特征:1.具有異步I/O和中斷處理能力2.任務(wù)切換時(shí)間和中斷延遲時(shí)間確定3.優(yōu)先級(jí)中斷和調(diào)度4.搶占式調(diào)度5.內(nèi)存鎖定6.連續(xù)文件7.同步RTOS的三個(gè)主要實(shí)時(shí)指標(biāo):響應(yīng)時(shí)間(中斷延遲時(shí)間和任務(wù)切換時(shí)間)、吞吐量(在給定時(shí)間內(nèi),實(shí)時(shí)系統(tǒng)可以處理的事件總數(shù))、生存事件(輸入數(shù)據(jù)的有效等待時(shí)間)嵌入式操作系統(tǒng)概述嵌入式操作系統(tǒng)(EOS)是嵌入式系統(tǒng)中的軟件。與通用計(jì)算機(jī)的操作系統(tǒng)相比較具有可移植、強(qiáng)調(diào)實(shí)時(shí)性能、內(nèi)核精簡(jiǎn)、搶占式多任務(wù)處理、使用可重入函數(shù)、可配置、可裁剪、高可靠性等特點(diǎn)。嵌入式操作系統(tǒng)可粗略地分為內(nèi)核、驅(qū)動(dòng)程序、服務(wù)模塊與行命令解釋程序幾大部分。內(nèi)核有廣義和狹義兩種解釋。廣義:指裝入在存儲(chǔ)器里的嵌入式軟件中的操作系統(tǒng)部分。狹義:指嵌入式操作系統(tǒng)中負(fù)責(zé)多任務(wù)管理及任務(wù)間通信的多任務(wù)處理部分。它執(zhí)行任務(wù)創(chuàng)建與初始化、任務(wù)調(diào)度、時(shí)鐘管理、中斷管理。內(nèi)存管理等。例如μCOS-II就是典型的純內(nèi)核例子。主流嵌入式操作系統(tǒng)TinyOS:開(kāi)源,深度輕量級(jí),先進(jìn)先出調(diào)度,用于無(wú)線傳感器網(wǎng)絡(luò)μC/OS-II/III:小型嵌入式操作系統(tǒng)內(nèi)核,不含設(shè)備驅(qū)動(dòng)程序和文件系統(tǒng)。開(kāi)源,用于工控領(lǐng)域。iOS:蘋(píng)果公司,微內(nèi)核,系統(tǒng)結(jié)構(gòu)分為4個(gè)層次:核心操作系統(tǒng)、核心服務(wù)層、媒體層、觸摸框架層,系統(tǒng)運(yùn)行占用約512MB。iOS與蘋(píng)果公司的MacOSX操作系統(tǒng)一樣,也是以DarwinOS為基礎(chǔ)的,因此同樣屬于類Unix的商業(yè)操作系統(tǒng)。WindowsEmbeddedCompact8:即以前的WinCE操作系統(tǒng)。屬于大型嵌入式操作系統(tǒng)??捎糜谑殖衷O(shè)備。。具有HAL和OAL。WindowsPhone8:前驅(qū)產(chǎn)品是2003年問(wèn)世的WindowsMobile。用于手機(jī)操作系統(tǒng)。VxWorks:目前公認(rèn)為實(shí)時(shí)性最強(qiáng)、可靠性最高的一種嵌入式實(shí)時(shí)操作系統(tǒng)。廣泛應(yīng)用于航空航天、通信和國(guó)防領(lǐng)域。屬于大型商用操作系統(tǒng),具有配套的Tornado集成開(kāi)發(fā)環(huán)境。嵌入式Linux:普通Linux操作系統(tǒng)移植到嵌入式硬件平臺(tái)上的版本。開(kāi)源、不存在黑箱技術(shù),安卓操作系統(tǒng):以Linux為基礎(chǔ),半開(kāi)放源代碼操作系統(tǒng),屬于大型操作系統(tǒng),通過(guò)AndroidSDK使用Java作為編程語(yǔ)言來(lái)開(kāi)發(fā)Android應(yīng)用程序。eCOS:免費(fèi)和開(kāi)源的實(shí)時(shí)操作系統(tǒng),使用于嵌入式系統(tǒng)和那些只需要一個(gè)進(jìn)程多個(gè)線程的應(yīng)用項(xiàng)目。QNX:實(shí)時(shí),可擴(kuò)充,內(nèi)核小巧,速度快,可應(yīng)用于虛擬機(jī)。嵌入式操作系統(tǒng)分類(1)按源代碼規(guī)模分類:分為小型和大型,區(qū)別是源代碼行數(shù)數(shù)量大小,超過(guò)10000行語(yǔ)句為大型,否則為小型。(2)按內(nèi)核大小分類:小內(nèi)核和大內(nèi)核,前者最小內(nèi)核8KB,后者最小320KB。(3)按照能否免費(fèi)獲得源代碼分類:開(kāi)放源代碼和不開(kāi)放源代碼,開(kāi)源系統(tǒng):μCLinux、RTLinux、NucleusPlus、ECOS、μC/OS-II(4)按照實(shí)時(shí)性能分類:分為強(qiáng)實(shí)時(shí)型和普通實(shí)時(shí)型。強(qiáng)實(shí)時(shí):VxWorks、片SOS、μCOS-II等,普通實(shí)時(shí):WindowsEmbedded、μCLinux、Symbian等。(5)按照內(nèi)核結(jié)構(gòu)分類:?jiǎn)蝺?nèi)核和微內(nèi)核。單內(nèi)核又稱宏內(nèi)核,內(nèi)部含有進(jìn)程管理、調(diào)度器、時(shí)間管理、設(shè)備管理、文件管理等模塊。耦合度高,通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)模塊之間通信。如Unix、嵌入式Linux、WinCE、MacOS、AndroidOS和DOS
。微內(nèi)核:內(nèi)核小巧,接口一致,松散耦合,人物間通信機(jī)制為消息機(jī)制,以消息傳遞方式相傳。如:Symbian、VxWorks、QNX、μC/OS-II、iOS等,iOS前身是在DarwinOS基礎(chǔ)上研發(fā)的iPhoneOS,是一個(gè)類Unix操作系統(tǒng),屬于微內(nèi)核架構(gòu)。嵌入式操作系統(tǒng)的仿真平臺(tái)一般指嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中使用的指令集模擬器、仿真軟件或者虛擬機(jī)管理軟件。如ARM公司的Armulator和清華大學(xué)研發(fā)的SkyEye都是ARM指令集模擬器,更奇安達(dá)的為VMware虛擬機(jī),可搭建嵌入式Linux的仿真開(kāi)發(fā)平臺(tái)。硬件抽象層、板級(jí)支持包和引導(dǎo)加載程序底層軟件主要就是指硬件抽象層、板級(jí)支持包和啟動(dòng)引導(dǎo)程序。硬件抽象層(HAL)WindowsNT。板級(jí)支持包(BSP)由美國(guó)風(fēng)和公司(VxWorks研發(fā)商)提出。一般而言,音質(zhì)VxWorks操作系統(tǒng)有四種操作類型:宿主機(jī)移植、體系結(jié)構(gòu)移植、目標(biāo)板移植、升級(jí)以前Tornado集成開(kāi)發(fā)環(huán)境版本的BSP到最新版本。硬件抽象層(HAL)熱點(diǎn):是嵌入式硬件電路板的最基本軟件,基本上是用標(biāo)準(zhǔn)C編寫(xiě)的,負(fù)責(zé)嵌入式操作系統(tǒng)移植,需集中精力在HAL上座關(guān)鍵代碼的編程工作,從而加速操作系統(tǒng)的移植。含有HAL的操作系統(tǒng):RTAL、eCOS、μITRON和NiosII。板級(jí)支持包BSPHAL和BSP的異同:對(duì)于同樣的一個(gè)電路板,HAL一般只有一個(gè),但是不同的操作系統(tǒng)擁有不同的BSP;移植一個(gè)操作系統(tǒng)A到一塊新的電路板,為了構(gòu)造BSP,需要改寫(xiě)的源代碼基于兩種來(lái)源,一種是操作系統(tǒng)A在類似電路板的BSP,另一種是這塊電路板的HAL。BSP含有電路板的全套初始化程序,包括操作系統(tǒng)初始化,它要為操作系統(tǒng)的正常運(yùn)行做好準(zhǔn)備,而HAL通常也包括硬件初始化程序,但是不完整,例如不包括操作系統(tǒng)的初始化處理。引導(dǎo)加載程序嵌入式系統(tǒng)加電后執(zhí)行的第一批最初操作成為引導(dǎo)或者自舉(Boot),對(duì)應(yīng)的程序成為引導(dǎo)程序或者引導(dǎo)加載程序(Bootloader)。引導(dǎo)加載程序主要完成內(nèi)存加電自檢、外設(shè)存在自檢、內(nèi)存地址映射、初始化外圍設(shè)備、內(nèi)存尋址定位、加載和啟動(dòng)操作系統(tǒng)。典型嵌入式系統(tǒng)啟動(dòng)順序:(1)上電后,Bootloader將執(zhí)行基本的硬件自檢、初始化硬件控制寄存器、初始化SDRAM等工作(2)Bootloader將OS內(nèi)核映像文件從非揮發(fā)存儲(chǔ)介質(zhì)(如Flash)中復(fù)制到SDRAM中,并將控制權(quán)轉(zhuǎn)交給OS。(3)OS內(nèi)核執(zhí)行創(chuàng)建頁(yè)表、驅(qū)動(dòng)外設(shè)、初始化中斷控制系統(tǒng)等OS的流程,最終創(chuàng)建應(yīng)用程序執(zhí)行環(huán)境甚至圖形用戶界面。Bootloader的兩個(gè)執(zhí)行階段stage1的基本步驟:基本硬件初始化,為加載stage2準(zhǔn)備RAM空間,拷貝stage2的執(zhí)行代碼到RAM空間中,設(shè)置棧區(qū)指針SP,跳轉(zhuǎn)到stage2的C程序入口點(diǎn)。硬件初始化一般包括:關(guān)閉WatchDog、關(guān)中斷、設(shè)置CPU的速度和時(shí)鐘頻率、RAM初始化等。stage2的基本步驟:?jiǎn)?dòng)加載模式下Bootloader的stage2操作流程:初始化本階段要使用到的硬件設(shè)備,檢測(cè)系統(tǒng)內(nèi)存映射,將內(nèi)存映像和根文件系統(tǒng)映像從Flash上讀到RAM空間中,為內(nèi)核設(shè)置啟動(dòng)參數(shù),調(diào)用內(nèi)核。下載模式下Bootloader的stage2操作流程:初始化本階段要使用到的硬件設(shè)備,主要是串口、網(wǎng)口和Flash存儲(chǔ)器等;等待用戶輸入行命令以進(jìn)入下載模式,否則直接進(jìn)入啟動(dòng)加載模式;通過(guò)串口終端與調(diào)試主機(jī)建立連接,提供人機(jī)交互接口;接收用戶輸入,通過(guò)串口或者網(wǎng)口進(jìn)行文件下載,將文件寫(xiě)入Flash存儲(chǔ)器保存;下載完畢,繼續(xù)等待用戶輸入或者重啟系統(tǒng)。嵌入式Linux的Bootloader執(zhí)行步驟初始化處理器及外設(shè)的硬件資源配置;建立內(nèi)存空間的映射管理,使能MMU,將系統(tǒng)的外存和內(nèi)存地址變換激活,為最終調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備;裝載操作系統(tǒng)映像到內(nèi)存;對(duì)Flash存儲(chǔ)器編程;運(yùn)行操作系統(tǒng);傳遞系統(tǒng)啟動(dòng)參數(shù);命令行解析和輸入/輸出控制。U-Boot被認(rèn)為是功能全面、具有靈活性以及應(yīng)用廣泛的開(kāi)放源代碼Bootloader,目前由DENX公司維護(hù)。就目前來(lái)說(shuō),U-Boot對(duì)PowerPC系列處理器的支持最為豐富,對(duì)Linux的支持最為完善,國(guó)內(nèi)ARM9實(shí)驗(yàn)箱通常使用U-boot作為Bootloader,引導(dǎo)多種嵌入式操作系統(tǒng)。嵌入式Linux操作系統(tǒng)Linux是目前唯一可免費(fèi)獲得的、能為多用戶提供多任務(wù)、多線程功能的大型操作系統(tǒng)。最初以Unix為原型,以實(shí)現(xiàn)POSIX標(biāo)準(zhǔn)為目標(biāo),是最好的類Unix操作系統(tǒng)。嵌入式Linux:MontanaVistaLinux、μClinux、RTLinux(硬實(shí)時(shí))、RTAI從頂視圖看,嵌入式Linux操作系統(tǒng)主要由用戶進(jìn)程、OS服務(wù)組件和Linux內(nèi)核三大子系統(tǒng)組成。用戶進(jìn)程:在Linux系統(tǒng)上運(yùn)行的應(yīng)用程序集合。OS服務(wù)組件:位于Linux操作系統(tǒng)內(nèi)核之上的一層服務(wù)模塊或者實(shí)用程序集合,例如行命令解釋程序(Shell)、窗口系統(tǒng)(例如XWindows、QT)、內(nèi)核編程接口等。Linux內(nèi)核:主要作用:進(jìn)程管理與調(diào)度、內(nèi)存管理、文件管理、網(wǎng)絡(luò)接口和進(jìn)程間通信。由5個(gè)子系統(tǒng)組成:進(jìn)程調(diào)度SCHED、內(nèi)存管理MM、虛擬文件系統(tǒng)VFS、網(wǎng)絡(luò)接口NET、進(jìn)程間通信IPC。嵌入式操作系統(tǒng)μC/OS-IIμC/OS-II的基本特點(diǎn)μC/OS-II是搶占式實(shí)時(shí)操作系統(tǒng)內(nèi)核,不涉及硬件驅(qū)動(dòng)程序。只能管理64個(gè)任務(wù),目前版本保留8個(gè)任務(wù)給系統(tǒng),這樣用戶編寫(xiě)的應(yīng)用程序最多可以有56個(gè)任務(wù)。不支持時(shí)間片輪轉(zhuǎn)調(diào)度法,賦予每個(gè)任務(wù)的優(yōu)先級(jí)是不同的,每個(gè)任務(wù)擁有自用棧。使用μC/OS-II的棧空間校驗(yàn)函數(shù)可以確定每個(gè)任務(wù)到底需要多少??臻g。μC/OS-II的層次位置μC/OS-II嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)具有面向任務(wù)的特點(diǎn)。任務(wù)中的功能處理可以通過(guò)調(diào)用API函數(shù)實(shí)現(xiàn),也可以通過(guò)中斷服務(wù)例程ISR實(shí)現(xiàn)。應(yīng)用程序接口層(API)主要包括文件系統(tǒng)、TCP/IP網(wǎng)絡(luò)協(xié)議棧、圖形用戶界面、中文系統(tǒng)、嵌入式數(shù)據(jù)庫(kù)、因特網(wǎng)Web瀏覽器等。μC/OS-II的代碼結(jié)構(gòu)與初始化大部分代碼由標(biāo)準(zhǔn)C語(yǔ)言寫(xiě)成。μC/OS-II主要由三大類程序文件構(gòu)成,這三大類程序按照硬件和應(yīng)用相關(guān)性分為:與處理器類型無(wú)關(guān)的代碼、與應(yīng)用程序有關(guān)的代碼和與硬件平臺(tái)移植相關(guān)的代碼。按照功能還可以把這些文件分成核心模塊、預(yù)處理模塊、進(jìn)程間通信(IPC)模塊、內(nèi)存管理模塊、任務(wù)與調(diào)度管理模塊、時(shí)間管理模塊以及移植模塊。μC/OS-II的啟動(dòng)過(guò)程:Bootloader執(zhí)行完畢后,調(diào)用應(yīng)用程序主文件(main()函數(shù))。main()函數(shù)在執(zhí)行過(guò)程中,除了用戶函數(shù)和硬件初始化函數(shù)外,按照以下次序執(zhí)行3個(gè)主要的μC/OS-II函數(shù):1.操作系統(tǒng)初始化OSInt();2.任務(wù)創(chuàng)建OSTaskCreat();3.任務(wù)調(diào)度開(kāi)始OSStart()。一旦OSStart()函數(shù)開(kāi)始執(zhí)行,就標(biāo)志著μC/OS-II進(jìn)入了多任務(wù)調(diào)度的正常運(yùn)行狀態(tài)。OSInit函數(shù)先建立最初的任務(wù)就緒表,然后建立4個(gè)空白的數(shù)據(jù)鏈表。這些內(nèi)存的空白數(shù)據(jù)區(qū)開(kāi)辟之后,OSInt創(chuàng)建第1個(gè)任務(wù),這就是空閑任務(wù)(IdleTask),優(yōu)先級(jí)設(shè)為最低(取常量OS_LOWEST_PRIO的值),創(chuàng)建之后進(jìn)入就緒態(tài)。條件滿足的話,OSInt還創(chuàng)建一個(gè)統(tǒng)計(jì)任務(wù)OSTaskStat,也讓進(jìn)入就緒態(tài),OSTaskStat優(yōu)先級(jí)取為OS_LOWEST_PRIO-1(次低級(jí))。在main.c代碼文件中還有兩個(gè)μC/OS-II的函數(shù),其中OSTaskCreate函數(shù)創(chuàng)建用戶定義的一個(gè)任務(wù),OSStart啟動(dòng)μC/OS-II多任務(wù)調(diào)度。在μC/OS-II多任務(wù)調(diào)度啟動(dòng)前,用戶至少要使用OSTaskCreate函數(shù)建立一個(gè)應(yīng)用任務(wù)。μC/OS-II任務(wù)的創(chuàng)建:可以使用OSTaskCreate函數(shù)或者OSTaskCreateExt函數(shù)。一個(gè)任務(wù)通常是一個(gè)無(wú)限的循環(huán),有函數(shù)返回類型,有形式參數(shù)變量,但是任務(wù)絕不會(huì)返回的,故返回參數(shù)必須定義為void。μC/OS-II的內(nèi)核μC/OS-II是嵌入式操作系統(tǒng)領(lǐng)域中的最小內(nèi)核之一,只提供任務(wù)調(diào)度、任務(wù)間通信(ITC)與同步、任務(wù)管理、時(shí)間管理、內(nèi)存管理、等基本功能。搶占式任務(wù)調(diào)度、多任務(wù)通信。臨界區(qū):指處理時(shí)不可分割的代碼。一旦執(zhí)行,不允許任何中斷。在進(jìn)入臨界區(qū)之前必須關(guān)中斷,執(zhí)行完臨界區(qū)代碼之后要立即開(kāi)中斷。μC/OS-II調(diào)用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()兩個(gè)宏來(lái)執(zhí)行關(guān)中斷和開(kāi)中斷。μC/OS-II的任務(wù)狀態(tài)μC/OS-II操作系統(tǒng)可以定義的最大任務(wù)數(shù)是64個(gè),最高優(yōu)先級(jí)定為0,最低優(yōu)先級(jí)取值為實(shí)際定義的最大任務(wù)數(shù)減1.任務(wù)建立之后,擁有優(yōu)先級(jí)、執(zhí)行函數(shù)、自用??臻g和任務(wù)控制塊(TCB),運(yùn)行時(shí)能夠完全控制CPU的操作以及全部用戶可訪問(wèn)寄存器的操作。絕大多數(shù)情況下μC/OS-II的每個(gè)任務(wù)都是一個(gè)無(wú)限的循環(huán)。每個(gè)任務(wù)處在以下5個(gè)狀態(tài)之一:休眠態(tài)、就緒態(tài)(記錄在就緒任務(wù)集中)、運(yùn)行態(tài)、掛起態(tài)和被中斷態(tài)。任務(wù)控制塊OS_TCB:內(nèi)核對(duì)任務(wù)的管理通過(guò)任務(wù)控制塊OS_TCB進(jìn)行。OS_TCB全部駐留在RAM。OS_TCB數(shù)據(jù)結(jié)構(gòu)中的OSTCBX、OSTCBY、OSTCBBitX、OSTCBBitY4個(gè)變量用于加速任務(wù)進(jìn)入就緒態(tài)的過(guò)程或進(jìn)入等待事件發(fā)生狀態(tài)的過(guò)程。μC/OS-II的任務(wù)調(diào)度μC/OS-II的就緒任務(wù)登記在就緒表中。就緒表由兩個(gè)變量OSRdyGrp和OSRdyTbl[]構(gòu)成。μC/OS-II總是運(yùn)行處于就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的那一個(gè),由調(diào)度器(Scheduler)確定哪個(gè)任務(wù)優(yōu)先級(jí)最高,下面應(yīng)該執(zhí)行哪一個(gè)任務(wù)。任務(wù)級(jí)的調(diào)度是由函數(shù)OSSched()完成的,是任務(wù)調(diào)度的前導(dǎo)函數(shù);中斷級(jí)的調(diào)度是由另一個(gè)函數(shù)OSIntExit()完成的。μC/OS-II的任務(wù)切換也稱為上下文切換、文境切換,實(shí)際含義是任務(wù)的CPU寄存器內(nèi)容切換。完成任務(wù)切換所需要的時(shí)間取決于CPU有多少寄存器要入棧。μC/OS-II的中斷處理μC/OS-II允許中斷嵌套,嵌套層數(shù)可達(dá)255層。中斷服務(wù)子程序執(zhí)行事件處理有兩種方法。一種方法是通過(guò)OSMBoxPost()、OSQPost()、OSSemPost()等函數(shù)去通知真正做該事件處理的那個(gè)任務(wù),讓任務(wù)完成中斷事件的處理。另外一種是由中斷服務(wù)子程序本身完成事件處理。調(diào)用中斷退出函數(shù)OSIntExit()標(biāo)志著中斷服務(wù)子程序的終結(jié),OSIntExit()將中斷嵌套層數(shù)計(jì)數(shù)器減1。中斷級(jí)任務(wù)切換函數(shù)OSIntCtxSw()。μC/OS-II的時(shí)間管理μC/OS-II能夠提供周期性時(shí)鐘信號(hào),用于實(shí)現(xiàn)任務(wù)的正確延時(shí)和超時(shí)確認(rèn),節(jié)拍率應(yīng)在每秒10次到100次之間,即10-100Hz,時(shí)鐘節(jié)拍率越高,系統(tǒng)的額外負(fù)荷就越重。用戶必須在多任務(wù)系統(tǒng)啟動(dòng)以后再激活時(shí)鐘節(jié)拍信號(hào)發(fā)生器,也就是在調(diào)用OSStart()之后,即在調(diào)用OSStart()之后做的第一件事是初始化定時(shí)器中斷。μC/OS-II的匯編語(yǔ)言時(shí)鐘節(jié)拍中斷服務(wù)子程序名稱是OSTickISR。OSTimtick()函數(shù)執(zhí)行時(shí)以調(diào)用可由用戶定義的時(shí)鐘節(jié)拍接口函數(shù)OSTimTickHook()開(kāi)始,這個(gè)接口函數(shù)擴(kuò)展了時(shí)鐘節(jié)拍函數(shù)OSTimtick(),給用戶一個(gè)完成特定處理的機(jī)會(huì)。μC/OS-II的任務(wù)間通信主要有三種:利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITECAL()來(lái)關(guān)閉中斷和打開(kāi)中斷。利用函數(shù)OSSchedLock()和OSSchekUnlock()對(duì)μC/OS-II中的任務(wù)調(diào)度函數(shù)上鎖和開(kāi)鎖。利用信號(hào)量OS_EVENT_TYPE_SEM、互斥信號(hào)量OS_EVENT_TYPE_MUTEX、郵箱OS_EVENT_TYPE_MBOX或消息隊(duì)列OS_ENENT_TYPE_Q進(jìn)行任務(wù)間通信。事件控制塊ECB:用于實(shí)現(xiàn)信號(hào)量管理、互斥型信號(hào)量管理、消息郵箱以及消息隊(duì)列管理的ITC功能函數(shù)的基本數(shù)據(jù)結(jié)構(gòu)。OSEventType:定義了事件的具體類型。OSEventCnt:當(dāng)事件是一個(gè)信號(hào)量時(shí),OSEventCnt是用于信號(hào)量的計(jì)數(shù)器。μC/OS-II的事件控制塊有4種類型,需要使用4個(gè)不同的函數(shù)來(lái)創(chuàng)建,分別是OSSemCreate()、OSMutexCreate()、OSMboxCreate()、OSQCreate()。信號(hào)量控制下的任務(wù)間通信:在μC/OS-II韓靜霞,使用信號(hào)量進(jìn)行任務(wù)間通信室,首先應(yīng)該使用信號(hào)量創(chuàng)建函數(shù)OSSemCreate來(lái)創(chuàng)建一個(gè)信號(hào)量,并且對(duì)該信號(hào)量賦以初始計(jì)數(shù)值。如果信號(hào)量是用來(lái)表示一個(gè)或者多個(gè)事件的發(fā)生,那么該信號(hào)量的初始值應(yīng)設(shè)為0。如果信號(hào)量是用于對(duì)共享資源的訪問(wèn),那么該信號(hào)量的初始值應(yīng)設(shè)為1。如果該信
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 售后客服個(gè)人工作總結(jié)范文模板大全【5篇】
- 人教版三年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)導(dǎo)學(xué)案
- 仁愛(ài)英語(yǔ)九年級(jí)總復(fù)習(xí)教案
- 部編版2024-2025學(xué)年 語(yǔ)文六年級(jí)上冊(cè)期末測(cè)試卷(含答案)
- 浙江語(yǔ)文高考6篇
- 全國(guó)運(yùn)動(dòng)員注冊(cè)協(xié)議書(shū)范本(2篇)
- 2025年電力金具合作協(xié)議書(shū)
- 冷藏庫(kù)租賃合同書(shū)
- 辦公場(chǎng)所租房協(xié)議
- 廣西汽車(chē)租賃合同范本汽車(chē)租賃合同范本
- 零工市場(chǎng)(驛站)運(yùn)營(yíng)管理 投標(biāo)方案(技術(shù)方案)
- 植物病蟲(chóng)害防治技能大賽理論題及答案
- 2024年垃圾分類知識(shí)競(jìng)賽題庫(kù)和答案
- 2024-2025學(xué)年六年級(jí)科學(xué)上冊(cè)第二單元《地球的運(yùn)動(dòng)》測(cè)試卷(教科版)
- 【課件】城鎮(zhèn)與鄉(xiāng)村課件2024-2025學(xué)年人教版地理七年級(jí)上冊(cè)
- 傳感器與執(zhí)行元件制造考核試卷
- 2024年高考英語(yǔ)概要寫(xiě)作高分范文全
- (正式版)SH∕T 3541-2024 石油化工泵組施工及驗(yàn)收規(guī)范
- 學(xué)校幼兒園食堂從業(yè)人員考試試題
- 2023年春外研版四年級(jí)英語(yǔ)下冊(cè)全冊(cè)完整課件
- 《現(xiàn)行制度下高新技術(shù)企業(yè)的稅收籌劃-以華為為例》
評(píng)論
0/150
提交評(píng)論