基于μCOS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究_第1頁(yè)
基于μCOS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究_第2頁(yè)
基于μCOS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究_第3頁(yè)
基于μCOS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究_第4頁(yè)
基于μCOS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于C/OS的嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)研究摘要:本文介紹了嵌入式系統(tǒng)的概念,分析了/S的內(nèi)核構(gòu)造,并詳細(xì)介紹了在具有AR體系構(gòu)造的S344B0微處理器上進(jìn)展/S操作系統(tǒng)的移植和應(yīng)用程序及驅(qū)動(dòng)程序的開(kāi)發(fā)。關(guān)鍵詞:嵌入式系統(tǒng)/s微處理器Abstrat:ThepaperbringfrardtheneptinfEbeddedSyste,Analysetherekeref/s,reverdetailedlyintrduegraftingthe/SsperatingsystentheARsarhiteturalstruturefS344B0sirpressrandepldernappliatinanddrive

2、rprgra。Keyrds:EbeddedSyste/sirPressr一、嵌入式系統(tǒng)概述嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的詳細(xì)應(yīng)用相結(jié)合后的產(chǎn)物,目前嵌入式系統(tǒng)已經(jīng)浸透到日常生活的各個(gè)方面,其在工業(yè)、效勞業(yè)、消費(fèi)電子等領(lǐng)域的應(yīng)用范圍都不斷擴(kuò)大,嵌入式計(jì)算機(jī)系統(tǒng)的正式定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為根底,軟件硬件可裁減,符合應(yīng)用系統(tǒng)對(duì)功能、可靠性、本錢(qián)、體積、功耗的嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的主要特征有:系統(tǒng)內(nèi)核小;專用性強(qiáng);系統(tǒng)精簡(jiǎn);嵌入式軟件要求高實(shí)時(shí)性的操作系統(tǒng)軟件;軟件要求高質(zhì)量和高可靠性;嵌入式系統(tǒng)開(kāi)發(fā)需要專門(mén)的開(kāi)發(fā)工具和環(huán)境。嵌入式系統(tǒng)由

3、硬件和軟件兩大局部組成,在本開(kāi)發(fā)應(yīng)用中,選擇AR7TDI內(nèi)核構(gòu)造的sasung公司的s344b0作為微處理器芯片,該芯片具有主頻高、運(yùn)算速度快,超低功耗、價(jià)格低廉、構(gòu)造簡(jiǎn)單等特點(diǎn),在該內(nèi)核根底上擴(kuò)展了一系列完好的通用外圍器件,主要有:片內(nèi)8KB高速緩存、帶有1個(gè)專用DA通道的LD控制器、2個(gè)通用DA通道、1個(gè)多主機(jī)I2總線控制器、5個(gè)P定時(shí)器及1個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/口、8個(gè)外部中斷源、8個(gè)10位AD等資源,主頻為66HZ,系統(tǒng)支持大小端形式,共256B的地址空間,支持8/16/32位數(shù)據(jù)總線編程。開(kāi)發(fā)平臺(tái)外配與用戶交互接口有RS-232串口電路、外擴(kuò)flash、sdra,USB控制電路

4、、以太網(wǎng)電路、鍵盤(pán),JTAG接口電路局部。實(shí)時(shí)嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費(fèi)型,前者系統(tǒng)功能穩(wěn)定、可靠,并有完善的技術(shù)支持和售后效勞,建立應(yīng)用開(kāi)發(fā)較為容易,但價(jià)格昂貴,代表性的有美國(guó)indRiver公司的Vxrks操作系統(tǒng)、irsft公司的inE操作系統(tǒng);免費(fèi)型可以節(jié)約本錢(qián),且源碼公開(kāi),便于開(kāi)發(fā),代表性的有嵌入式Linux系統(tǒng)、/S系統(tǒng)。二、嵌入式/S的體系構(gòu)造介紹由于/S構(gòu)造簡(jiǎn)單,編程工具絕大局部是語(yǔ)言編程,可以在大多數(shù)界面友好的編譯器中編譯生成目的代碼,如Brland、KEil等工具,且其內(nèi)核最小可以到幾十K,可以在多種體系構(gòu)造的微處理器上移植,用戶的工作較小,

5、源代碼開(kāi)放,便于學(xué)習(xí)。/S-II的幾大組成局部有:核心局部(Sre.)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時(shí)鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多局部。任務(wù)處理局部(STask.)完成任務(wù)的操作;包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。時(shí)鐘局部(STie.)主要完成任務(wù)延時(shí)等操作。任務(wù)同步和通信局部為事件處理局部,包括信號(hào)量、郵箱、郵箱隊(duì)列、事件標(biāo)志等局部;/S-II的軟件體系構(gòu)造如圖1所示。從圖1中可以看到,假如要使用/S-II,必須為其編寫(xiě)S_PU.H、S_PU_.、S_PU_A.AS三個(gè)文件。三、/S在AR微處理器上的移植/S-II的全部源代碼量大約是60007

6、000行,一共有15個(gè)文件。將/S-II移植到AR處理器上,需要完成的工作也非常簡(jiǎn)單,只需要修改三個(gè)和AR體系構(gòu)造相關(guān)的文件,代碼量大約是500行。以下分別介紹這三個(gè)文件的移植工作:S_PU.H文件數(shù)據(jù)類型定義,這局部的修改是與所用的編譯器相關(guān)的,不同的編譯器會(huì)使用不同的字節(jié)長(zhǎng)度來(lái)表示同一數(shù)據(jù)類型,這里采用的編譯器為集成可視化開(kāi)發(fā)環(huán)境ARSDT2.5,相關(guān)的數(shù)據(jù)類型的定義如下:#defineBYTEINT8S/*Definedatatypesfrbakardpatibility*/#defineUBYTEINT8U/*.tu/SV1.xx.Ntatuallyneededfr.*/#define

7、RDINT16S/*.u/S-II.*/#defineURDINT16U#defineLNGINT32S#defineULNGINT32U堆棧單位因?yàn)樘幚砥鳜F(xiàn)場(chǎng)的存放器在任務(wù)切換時(shí)都將會(huì)保存在當(dāng)前運(yùn)行任務(wù)的堆棧中,所以S_STK數(shù)據(jù)類型應(yīng)該是和處理器的存放器長(zhǎng)度一致的。typedefunsignedintS_STK;/*Eahstakentryis16-bitide*/堆棧增長(zhǎng)方向該設(shè)置由編譯器選項(xiàng)決定,在本開(kāi)發(fā)中設(shè)定堆棧由高地址向低地址增長(zhǎng)。#defineS_STK_GRTH1/definethestaktgrfrhightl2、S_PU_.文件任務(wù)堆棧初始化這里涉及到任務(wù)初始化時(shí)的一個(gè)堆棧

8、設(shè)計(jì),也就是在堆棧增長(zhǎng)方向上如何定義每個(gè)需要保存的存放器位置,在AR體系構(gòu)造下,任務(wù)堆??臻g由高至低依次將保存著p、lr、r12、r11、r10、r1、r0、PSR、SPSR。vid*STaskStkInit(vid(*task)(vid*pd),vid*pdata,vid*pts,INT16Upt)unsignedint*stk;pt=pt;/*ptisntused,preventarning*/stk=(unsignedint*)pts;/*Ladstakpinter*/*-stk=(unsignedint)task;/*lr*/;/*r12r0*/*-stk=AR_DE_SYS;/*sy

9、stede*/*-stk=AR_DE_SYS;/*systede*/return(vid*)stk);當(dāng)前任務(wù)堆棧初始化完成后,STaskStkInit返回新的堆棧指針stk,在STaskreate執(zhí)行時(shí)將會(huì)調(diào)用STaskStkInit的初始化過(guò)程,然后通過(guò)STBInit函數(shù)調(diào)用將返回的sp指針保存到該任務(wù)的TB塊中。SStartHighRdy該函數(shù)是在主程序SStart()多任務(wù)啟動(dòng)后執(zhí)行,負(fù)責(zé)從最高優(yōu)先級(jí)任務(wù)的TB控制塊中獲得該任務(wù)的堆棧指針sp,通過(guò)sp依次將pu現(xiàn)場(chǎng)恢復(fù),這時(shí)系統(tǒng)就將控制權(quán)交給用戶創(chuàng)立的該任務(wù)進(jìn)程,僅執(zhí)行一次,此后多任務(wù)優(yōu)先級(jí)調(diào)度由下面函數(shù)執(zhí)行。StxS任務(wù)級(jí)的上下文切

10、換,它是當(dāng)任務(wù)因?yàn)楸蛔枞鲃?dòng)懇求pu調(diào)度時(shí)被執(zhí)行,由于此時(shí)的任務(wù)切換都是在非異常形式下進(jìn)展的,它的工作是先將當(dāng)前任務(wù)的pu現(xiàn)場(chǎng)保存到該任務(wù)堆棧中,然后獲得最高優(yōu)先級(jí)任務(wù)的堆棧指針,從該堆棧中恢復(fù)此任務(wù)的pu現(xiàn)場(chǎng),使之繼續(xù)執(zhí)行。SInttxS中斷級(jí)的任務(wù)切換,它是在時(shí)鐘中斷ISR中斷效勞例程中發(fā)現(xiàn)有高優(yōu)先級(jí)任務(wù)等待的時(shí)鐘信號(hào)到來(lái),那么在中斷退出后直接調(diào)度就緒的高優(yōu)先級(jí)任務(wù)執(zhí)行。STikISR時(shí)鐘中斷處理函數(shù),它的主要任務(wù)是負(fù)責(zé)處理時(shí)鐘中斷,調(diào)用系統(tǒng)實(shí)現(xiàn)的STieTik函數(shù),假如有等待時(shí)鐘信號(hào)的高優(yōu)先級(jí)任務(wù),那么需要在中斷級(jí)別上調(diào)度其執(zhí)行。其他相關(guān)的兩個(gè)函數(shù)是SIntEnter和SIntExit

11、,都需要在ISR中執(zhí)行。移植完以上程序后,用戶就可以結(jié)合自己的工程要求來(lái)編寫(xiě)自己的應(yīng)用程序了,用戶可以添加如打英空等待等任務(wù),以下給出了一個(gè)例程,通過(guò)調(diào)用STaskreate()函數(shù)注冊(cè)了三個(gè)任務(wù),由系統(tǒng)根據(jù)最優(yōu)調(diào)度原理進(jìn)展調(diào)度。vidain(vid)Initialize();/*Pressrspeifiinitializatin*/SInit();bufferSeaphre=SSereate(BUFFER_LENGTH-1);terinalSeaphre=SSereate(1);STaskreate(Task1,(vid*)string1,(vid*)staks0TASK_STK_SIZE-

12、1,0);STaskreate(Task2,(vid*)string2,(vid*)staks1TASK_STK_SIZE-1,1);STaskreate(Task3,(vid*)string3,(vid*)staks2TASK_STK_SIZE-1,2);SStart();/*Start.*/四、驅(qū)動(dòng)程序的添加由于U/S提供的僅僅是一個(gè)任務(wù)調(diào)度的內(nèi)核,通過(guò)以上移植,要想得到一個(gè)相對(duì)完好、實(shí)時(shí)的嵌入式多任務(wù)操作系統(tǒng),還必須進(jìn)展相當(dāng)多的擴(kuò)展工作。主要有:建立文件系統(tǒng)、通過(guò)開(kāi)發(fā)如LD液晶顯示、USB通信、鍵盤(pán)、串口等驅(qū)動(dòng)程序從而提供給用程序調(diào)用的API函數(shù),還有創(chuàng)立圖形用戶接口GUI函數(shù)等,下面主

13、要介紹一下串口驅(qū)動(dòng)程序的開(kāi)發(fā)。vidUart_Init(intlk,intbaud)該函數(shù)主要是初始化串口,設(shè)置波特率,其中l(wèi)k是系統(tǒng)主時(shí)鐘頻率,band參數(shù)傳遞串口通信波特率。vidUart_Selet(inth)該函數(shù)進(jìn)展串口選擇,h傳遞串口號(hào)。harUart_Geth(vid)該函數(shù)從串口讀取字符,存放在一數(shù)組內(nèi)。vidUart_GetString(har*string)該函數(shù)讀取要發(fā)送的字符串,并一個(gè)一個(gè)字符地從串口發(fā)送。vidUart_SendByte(intdata)該函數(shù)通過(guò)串口發(fā)送數(shù)據(jù),data是需要發(fā)送的字符。vidUart_SendString(har*pt)該函數(shù)通過(guò)串口發(fā)送字符串,pt是字符串首地址的指針。通過(guò)以上接口函數(shù),系統(tǒng)向用戶提供了屏蔽底層硬件的API函數(shù),用戶可以通過(guò)調(diào)用以上函數(shù),方便地對(duì)串口進(jìn)展操作。五、完畢語(yǔ)目前市場(chǎng)上基于/s嵌入式操作系統(tǒng)的產(chǎn)品比擬多,應(yīng)用領(lǐng)域包括工業(yè)控制、信息家電、網(wǎng)絡(luò)設(shè)備等方面,而且基于/

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論