999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于μC/OS的嵌入式系統(tǒng)應(yīng)用開發(fā)平臺(tái)的研究

2012-10-08 01:54:20疏國(guó)會(huì)
制造業(yè)自動(dòng)化 2012年7期
關(guān)鍵詞:嵌入式系統(tǒng)

疏國(guó)會(huì),金 鑫

SHU Guo-hui, JIN Xin

(安慶職業(yè)技術(shù)學(xué)院,安慶 246008)

1 嵌入式系統(tǒng)概述

嵌入式系統(tǒng)具有很高的先進(jìn)性,它綜合了多種高新技術(shù),包括計(jì)算機(jī)技術(shù)和電子技術(shù)以及半導(dǎo)體技術(shù)等,是多種技術(shù)結(jié)合的產(chǎn)物。日常生活的點(diǎn)滴都滲透了嵌入式系統(tǒng),大大方便了人們的生活、豐富了人們的精神世界。它的應(yīng)用領(lǐng)域非常廣闊,大到工業(yè)、服務(wù)業(yè),小到人們的日常娛樂(lè)活動(dòng),并且隨著經(jīng)濟(jì)的發(fā)展,嵌入式系統(tǒng)的應(yīng)用范圍更加擴(kuò)大。從專業(yè)的角度我們定義嵌入式系統(tǒng)為把計(jì)算機(jī)作為基礎(chǔ)技術(shù),將應(yīng)用作為中心,可裁減軟硬件的,具備應(yīng)用系統(tǒng)要求的功能、功耗、成本等要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)有三個(gè)主要的特征,分別是較強(qiáng)的專用性、精簡(jiǎn)的系統(tǒng)和具有較小的內(nèi)核。嵌入式系統(tǒng)對(duì)軟件的要求很高,符合要求的軟件必須具有很高的高實(shí)時(shí)性,另外軟件必須具備高質(zhì)量和可靠性。我們需要專門的工具和環(huán)境對(duì)嵌入式系統(tǒng)進(jìn)行開發(fā)[1]。

嵌入式μC/OS的體系結(jié)構(gòu)比較簡(jiǎn)單,所以大部分使用的是C語(yǔ)言進(jìn)行編程,大部分的友好界面的編譯器都能夠生成編譯的目標(biāo)代碼,友好的編譯器有Borland C、Keil等。嵌入式μC/OS的體系的內(nèi)核可以很小,小到幾十KB的都有,所以它在移植時(shí)支持體系結(jié)構(gòu)多種多樣的微處理器。這樣留給用戶的工作就很少了,由于源代碼是開放的這就方便了學(xué)習(xí)。μC/OS-II有幾大組成部分,分別是:核心部分(OSCore.c),這是操作系統(tǒng)的處理核心,它又包括了多個(gè)組成部分,主要有操作系統(tǒng)初始化、中斷進(jìn)出的前導(dǎo)、任務(wù)調(diào)度等。任務(wù)處理部分(OSTask.c)的操作是用來(lái)完成任務(wù)的,它又包括了建立任務(wù)、刪除任務(wù)、掛起任務(wù)、恢復(fù)任務(wù)等。時(shí)鐘部分(OSTime.c)主要用來(lái)完成延時(shí)任務(wù)等。

嵌入式系統(tǒng)包括兩大部分,分別是硬件部分和軟件部分。嵌入式系統(tǒng)的主要特性如下:

1)其系統(tǒng)采用的是公開的源代碼,這也是它最大的特點(diǎn),在這一點(diǎn)上超越了其它的商業(yè)實(shí)時(shí)內(nèi)核。源代碼開放的好處是為在不同硬件平臺(tái)上移植操作系統(tǒng)提供了很大的便利。

2)嵌入式系統(tǒng)的可移植性能非常好,μC/OS的嵌入式系統(tǒng)源代碼大量采用了ANSI C進(jìn)行編寫,所以具有很強(qiáng)的可移植性,另外采用匯編語(yǔ)言編寫了和微處理硬件有關(guān)的部分,這樣的目的是方面了μC/OS的嵌入式系統(tǒng)的移植,可以適應(yīng)8、16、32位等。

3)嵌入式應(yīng)用和μC/OS的聯(lián)系十分緊密,因?yàn)楹笳呤沁m應(yīng)前者而設(shè)計(jì)的,所以可固化。開發(fā)者需要擁有一些固化手段,包括編譯、下載等就可以使μC/OS嵌入到產(chǎn)品中。

4)可以進(jìn)行裁減,對(duì)于μC/OS的嵌入式系統(tǒng)中不被需要的東西可以進(jìn)行裁減,只選取有用的應(yīng)用程序,這樣一來(lái)μC/OS所需的存儲(chǔ)空間就會(huì)得到釋放。

5)μC/OS的嵌入式系統(tǒng)的另一個(gè)特色就是占先式和多任務(wù)。級(jí)最高的任務(wù)在μC/OS的嵌入式系統(tǒng)中是被優(yōu)先運(yùn)行的,不過(guò)輪轉(zhuǎn)法的任務(wù)調(diào)度還是不被支持的,實(shí)時(shí)內(nèi)核是完全占先式的[2]。

6)其它特性,包括系統(tǒng)服務(wù)、穩(wěn)定性、可確定性等都是μC/OS的嵌入式系統(tǒng)具有很大吸引力的原因,對(duì)于安全要求很高的系統(tǒng)來(lái)說(shuō)μC/OS的嵌入式系統(tǒng)是一個(gè)不錯(cuò)的選擇。另外值得一提的是μC/OS中每個(gè)任務(wù)有獨(dú)立的棧,對(duì)于任務(wù)的獨(dú)立??臻g是允許的[3]。

2 基于μC/OS的嵌入式系統(tǒng)的平臺(tái)構(gòu)建

在嵌入式系統(tǒng)的開發(fā)之前我們需要構(gòu)建一個(gè)平臺(tái)進(jìn)行開發(fā),μC/OS系統(tǒng)并不提供開發(fā)平臺(tái),它提供的只是調(diào)度任務(wù)的內(nèi)核。內(nèi)核的作用是提供軟件系統(tǒng)的基礎(chǔ),如果想開發(fā)一個(gè)實(shí)用完整的操作系統(tǒng)需要首先進(jìn)行μC/OS的移植,將其移植到微處理器上之后擴(kuò)展操作系統(tǒng),然后得到一個(gè)符合標(biāo)準(zhǔn)的操作系統(tǒng)之后才能對(duì)應(yīng)用程序進(jìn)行開發(fā)。

2.1 μC/OS的移植

微處理器上移植有μC/OS是內(nèi)核正常運(yùn)轉(zhuǎn)的前提,只有內(nèi)核正常運(yùn)行起來(lái)才能進(jìn)一步擴(kuò)展。μC/OS進(jìn)行移植的例子不少了,所以可修改現(xiàn)有的這些移植代碼,這需要結(jié)合自己選擇的微處理器。微處理器需要滿足一定條件才能夠進(jìn)行μC/OS的移植,例如C編譯器可產(chǎn)生重入編碼、允許打開和中斷C編譯器等。

本文中的例子是S a m s u n g公司的ARM7TDMI,通過(guò)它來(lái)進(jìn)行μC/OS的移植,其中移植主要是對(duì)OS-CPU.H.OS、OS-CPU-A.ASM和OS-CPU-C.C這三個(gè)文件的數(shù)據(jù)和參數(shù)進(jìn)行改寫,目的就是進(jìn)行移植。

2.1.1 對(duì)OS-CPU-C.C進(jìn)行修改

所有和移植有關(guān)聯(lián)的C函數(shù)都在OS-CPU-C.C中,和操作系統(tǒng)相關(guān)的6個(gè)函數(shù)編寫語(yǔ)言為C語(yǔ)言。這6個(gè)函數(shù)分別是5個(gè)鉤子函數(shù)和一個(gè)堆棧初始化,后者是必要的函數(shù),剩下的5個(gè)函數(shù)需要聲

明,不過(guò)任何代碼可以省略。

2.1.2 對(duì)OS-CPU-A.ASM的修改

OS-CPU-A.ASM中的4個(gè)關(guān)聯(lián)處理器的函數(shù)由匯編語(yǔ)言編寫,這4個(gè)函數(shù)是OSStartHighRdy()、OSCtxSw()、OSTickISR()、OSInitCtxSw()。這4個(gè)函數(shù)各有分工,例如可以運(yùn)行優(yōu)先級(jí)別的最高級(jí)的任務(wù)的函數(shù)是OSStartHighRdy();當(dāng)前任務(wù)TCB的地址可以由LDRr4.addr-OSTCBCur.獲得;LDRsp[r5]可以切換到新堆棧。再編寫幾個(gè)相關(guān)函數(shù)就完成了OS-CPU-A.ASM的移植工作。

2.1.3 修改OS-CPU.H

設(shè)置OS-CPU.H代碼和ARM具有相關(guān)性,并設(shè)置數(shù)據(jù)類型和編譯器保持相關(guān)性。

對(duì)ARM中的數(shù)據(jù)類型進(jìn)行定義:

#de fi ne unsigned char BOOLEAN;

#de fi ne unsigned char INT8U /*8位無(wú)符號(hào)整數(shù)*/

#de fi ne signed char INT8S /*8位有符號(hào)整數(shù)*/

#de fi ne unsigned char INT16U /*16位無(wú)符號(hào)整數(shù)*/

#de fi ne signed int INT8S /*16位有符號(hào)整數(shù)*/

#de fi ne unsigned long INT32U /*32位無(wú)符號(hào)整數(shù)*/

#de fi ne signed long INT32S /*32位有符號(hào)整數(shù)*/

#de fi ne fl oat FP32 /*單精度浮點(diǎn)數(shù)*/

#de fi ne double FP64 /*雙精度浮點(diǎn)數(shù)*/

定義16位的ARM的數(shù)據(jù)類型為typed unsigned int OS-STK。

μC/OS只有完成了以上三個(gè)方面的移植才能夠在ARM的微處理器上運(yùn)行正常。完成移植工作后需要?jiǎng)澐窒到y(tǒng)任務(wù)、配置存儲(chǔ)的空間和實(shí)現(xiàn)任務(wù)的調(diào)度[4]。

2.2 擴(kuò)展μC/OS

μC/OS是一個(gè)內(nèi)核,它可以執(zhí)行實(shí)時(shí)多任務(wù),但是僅僅有μC/OS還是不夠的,不能實(shí)現(xiàn)完整的嵌入式系統(tǒng),如果想擁有完整實(shí)用的操作系統(tǒng)還需要進(jìn)行除了移植以外的擴(kuò)展工作。擴(kuò)展指的是文件系統(tǒng)的建立和建立外部設(shè)備驅(qū)動(dòng)、對(duì)有關(guān)的API函數(shù)進(jìn)行規(guī)范化、GUI函數(shù)的創(chuàng)建等等。

表1 用戶程序結(jié)構(gòu)

μC/OS系統(tǒng)是沒(méi)有文件系統(tǒng)的,而嵌入式系統(tǒng)是需要使用文件系統(tǒng)的,這就意味著我們要建立一個(gè)文件系統(tǒng)。文件系統(tǒng)的建立過(guò)程是首先對(duì)文件系統(tǒng)進(jìn)行初始化,接下來(lái)打開一個(gè)系統(tǒng)的指定文件,然后對(duì)文件進(jìn)行讀取和寫入,最后關(guān)閉文件,將緩沖釋放,這就是實(shí)現(xiàn)文件系統(tǒng)的過(guò)程。實(shí)現(xiàn)文件系統(tǒng)的過(guò)程中必須要首先用intOSFile()函數(shù)來(lái)對(duì)系統(tǒng)文件進(jìn)行初始化,這樣做的目的是分配合理的文件結(jié)構(gòu)空間。系統(tǒng)的文件打開采用OpenOSFile()來(lái)打開,對(duì)打開模式進(jìn)行指定然后進(jìn)行FILE結(jié)構(gòu)的創(chuàng)建,分配文件讀取的緩沖區(qū)。文件的緩沖區(qū)數(shù)據(jù)由ReadOSFile()來(lái)直接進(jìn)行讀取,如果數(shù)據(jù)為空那么就對(duì)FAT進(jìn)行訪問(wèn),在文件緩沖區(qū)進(jìn)行下一個(gè)簇的讀取。WriteOSFile()負(fù)責(zé)在指定的文件中寫入緩沖區(qū)[5]。

3 結(jié)束語(yǔ)

μC/OS是目前流行的、十分優(yōu)秀的嵌入式操作系統(tǒng),它有眾多的優(yōu)點(diǎn),比如實(shí)時(shí)性好并且內(nèi)存的需求很小、具有較好的移植性等。這些優(yōu)點(diǎn)都能夠使開發(fā)的周期減少,對(duì)于開發(fā)嵌入式系統(tǒng)的應(yīng)用程序是十分有利的。在新世紀(jì)嵌入式系統(tǒng)的發(fā)展尤為迅速,隨著嵌入式系統(tǒng)的快速發(fā)展μC/OS的應(yīng)用前景也會(huì)越來(lái)越廣闊[6]。

[1] 陳渝,李明,楊曄.源碼開放的嵌入式系統(tǒng)軟件分析與實(shí)踐—基于SkyEye和ARM開發(fā)平臺(tái)[M].中國(guó)電力出版社.2004.

[2] Bruce Powel Douglass,柳翔.嵌入式與實(shí)時(shí)系統(tǒng)開發(fā)[M].中國(guó)電力出版社.2005.

[3] 毛德操,胡希明.嵌入式系統(tǒng)—采用公開源代碼和Strong ARM/Xscale處理器[M].清華大學(xué)出版社,2003.

[4] 王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)[M].清華大學(xué)出版社,2002.

[5] 楊柳,盧清萍.嵌入式系統(tǒng)與Nios[J].安徽工程科技學(xué)院學(xué)報(bào)(自然科學(xué)版);2005,(02).

[6] 白智國(guó),王芳,馮丹.嵌入式系統(tǒng)移植問(wèn)題的研究[J].計(jì)算機(jī)工程與科學(xué).2005,(06).

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 久久综合色天堂av| 亚洲日韩AV无码一区二区三区人| 青青青亚洲精品国产| 国产精品欧美激情| 国产伦片中文免费观看| 美女裸体18禁网站| 久久大香香蕉国产免费网站| 四虎亚洲精品| www.亚洲一区二区三区| 毛片一级在线| 久久精品视频一| 精品伊人久久久大香线蕉欧美| 九一九色国产| 亚洲va视频| 99久久精品国产麻豆婷婷| 国产91色在线| 成人午夜免费视频| 青青操视频在线| 欧美日韩国产精品va| 制服丝袜在线视频香蕉| 狠狠色综合网| 2021亚洲精品不卡a| 成人噜噜噜视频在线观看| 亚洲熟女偷拍| 少妇精品在线| 精品视频免费在线| 欧美亚洲网| 亚洲午夜天堂| 国产成人高清亚洲一区久久| 国产毛片基地| 亚洲v日韩v欧美在线观看| www.精品视频| 天天摸天天操免费播放小视频| 亚洲精品免费网站| 欧美日韩一区二区三区四区在线观看| 亚洲欧美另类专区| 91久久偷偷做嫩草影院| 丝袜国产一区| 99无码熟妇丰满人妻啪啪| 97影院午夜在线观看视频| 丁香五月激情图片| 日韩无码视频播放| 亚洲国产精品不卡在线 | 欧美亚洲日韩不卡在线在线观看| 黄色一及毛片| 精品人妻一区二区三区蜜桃AⅤ| 免费av一区二区三区在线| 国产精品va| 99热这里只有精品在线观看| 日本一区二区不卡视频| 免费午夜无码18禁无码影院| 欧美福利在线| 日韩欧美国产三级| 欧美区在线播放| 中文字幕va| 91在线无码精品秘九色APP| 国产在线拍偷自揄观看视频网站| 19国产精品麻豆免费观看| 一本大道香蕉久中文在线播放| 99精品福利视频| 18禁影院亚洲专区| 五月天丁香婷婷综合久久| 一级成人a毛片免费播放| 亚洲中文字幕精品| 麻豆国产原创视频在线播放| 无码精品国产dvd在线观看9久| 热思思久久免费视频| 制服丝袜国产精品| 成人免费午间影院在线观看| 日韩麻豆小视频| 亚洲国产精品国自产拍A| 69视频国产| 国产高清无码麻豆精品| 婷婷色一区二区三区| 久久9966精品国产免费| 亚洲人成网7777777国产| 亚洲V日韩V无码一区二区| 亚洲欧洲日韩久久狠狠爱 | 精品一区二区三区四区五区| 怡春院欧美一区二区三区免费| 亚洲精品欧美重口| 国产91色在线|