




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于C/OS的嵌入式系統(tǒng)應用開發(fā)研究摘要:本文介紹了嵌入式系統(tǒng)的概念,分析了/S的內(nèi)核構造,并詳細介紹了在具有AR體系構造的S344B0微處理器上進展/S操作系統(tǒng)的移植和應用程序及驅動程序的開發(fā)。關鍵詞:嵌入式系統(tǒng)/s微處理器Abstrat:ThepaperbringfrardtheneptinfEbeddedSyste,Analysetherekeref/s,reverdetailedlyintrduegraftingthe/SsperatingsystentheARsarhiteturalstruturefS344B0sirpressrandepldernappliatinanddrive
2、rprgra。Keyrds:EbeddedSyste/sirPressr一、嵌入式系統(tǒng)概述嵌入式系統(tǒng)是將先進的計算機技術、半導體技術和電子技術與各個行業(yè)的詳細應用相結合后的產(chǎn)物,目前嵌入式系統(tǒng)已經(jīng)浸透到日常生活的各個方面,其在工業(yè)、效勞業(yè)、消費電子等領域的應用范圍都不斷擴大,嵌入式計算機系統(tǒng)的正式定義為:以應用為中心,以計算機技術為根底,軟件硬件可裁減,符合應用系統(tǒng)對功能、可靠性、本錢、體積、功耗的嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)的主要特征有:系統(tǒng)內(nèi)核??;專用性強;系統(tǒng)精簡;嵌入式軟件要求高實時性的操作系統(tǒng)軟件;軟件要求高質量和高可靠性;嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和環(huán)境。嵌入式系統(tǒng)由
3、硬件和軟件兩大局部組成,在本開發(fā)應用中,選擇AR7TDI內(nèi)核構造的sasung公司的s344b0作為微處理器芯片,該芯片具有主頻高、運算速度快,超低功耗、價格低廉、構造簡單等特點,在該內(nèi)核根底上擴展了一系列完好的通用外圍器件,主要有:片內(nèi)8KB高速緩存、帶有1個專用DA通道的LD控制器、2個通用DA通道、1個多主機I2總線控制器、5個P定時器及1個內(nèi)部定時器、71個通用I/口、8個外部中斷源、8個10位AD等資源,主頻為66HZ,系統(tǒng)支持大小端形式,共256B的地址空間,支持8/16/32位數(shù)據(jù)總線編程。開發(fā)平臺外配與用戶交互接口有RS-232串口電路、外擴flash、sdra,USB控制電路
4、、以太網(wǎng)電路、鍵盤,JTAG接口電路局部。實時嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費型,前者系統(tǒng)功能穩(wěn)定、可靠,并有完善的技術支持和售后效勞,建立應用開發(fā)較為容易,但價格昂貴,代表性的有美國indRiver公司的Vxrks操作系統(tǒng)、irsft公司的inE操作系統(tǒng);免費型可以節(jié)約本錢,且源碼公開,便于開發(fā),代表性的有嵌入式Linux系統(tǒng)、/S系統(tǒng)。二、嵌入式/S的體系構造介紹由于/S構造簡單,編程工具絕大局部是語言編程,可以在大多數(shù)界面友好的編譯器中編譯生成目的代碼,如Brland、KEil等工具,且其內(nèi)核最小可以到幾十K,可以在多種體系構造的微處理器上移植,用戶的工作較小,
5、源代碼開放,便于學習。/S-II的幾大組成局部有:核心局部(Sre.)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進出的前導、時鐘節(jié)拍、任務調(diào)度、事件處理等多局部。任務處理局部(STask.)完成任務的操作;包括任務的建立、刪除、掛起、恢復等等。時鐘局部(STie.)主要完成任務延時等操作。任務同步和通信局部為事件處理局部,包括信號量、郵箱、郵箱隊列、事件標志等局部;/S-II的軟件體系構造如圖1所示。從圖1中可以看到,假如要使用/S-II,必須為其編寫S_PU.H、S_PU_.、S_PU_A.AS三個文件。三、/S在AR微處理器上的移植/S-II的全部源代碼量大約是60007
6、000行,一共有15個文件。將/S-II移植到AR處理器上,需要完成的工作也非常簡單,只需要修改三個和AR體系構造相關的文件,代碼量大約是500行。以下分別介紹這三個文件的移植工作:S_PU.H文件數(shù)據(jù)類型定義,這局部的修改是與所用的編譯器相關的,不同的編譯器會使用不同的字節(jié)長度來表示同一數(shù)據(jù)類型,這里采用的編譯器為集成可視化開發(fā)環(huán)境ARSDT2.5,相關的數(shù)據(jù)類型的定義如下:#defineBYTEINT8S/*Definedatatypesfrbakardpatibility*/#defineUBYTEINT8U/*.tu/SV1.xx.Ntatuallyneededfr.*/#define
7、RDINT16S/*.u/S-II.*/#defineURDINT16U#defineLNGINT32S#defineULNGINT32U堆棧單位因為處理器現(xiàn)場的存放器在任務切換時都將會保存在當前運行任務的堆棧中,所以S_STK數(shù)據(jù)類型應該是和處理器的存放器長度一致的。typedefunsignedintS_STK;/*Eahstakentryis16-bitide*/堆棧增長方向該設置由編譯器選項決定,在本開發(fā)中設定堆棧由高地址向低地址增長。#defineS_STK_GRTH1/definethestaktgrfrhightl2、S_PU_.文件任務堆棧初始化這里涉及到任務初始化時的一個堆棧
8、設計,也就是在堆棧增長方向上如何定義每個需要保存的存放器位置,在AR體系構造下,任務堆??臻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);當前任務堆棧初始化完成后,STaskStkInit返回新的堆棧指針stk,在STaskreate執(zhí)行時將會調(diào)用STaskStkInit的初始化過程,然后通過STBInit函數(shù)調(diào)用將返回的sp指針保存到該任務的TB塊中。SStartHighRdy該函數(shù)是在主程序SStart()多任務啟動后執(zhí)行,負責從最高優(yōu)先級任務的TB控制塊中獲得該任務的堆棧指針sp,通過sp依次將pu現(xiàn)場恢復,這時系統(tǒng)就將控制權交給用戶創(chuàng)立的該任務進程,僅執(zhí)行一次,此后多任務優(yōu)先級調(diào)度由下面函數(shù)執(zhí)行。StxS任務級的上下文切
10、換,它是當任務因為被阻塞而主動懇求pu調(diào)度時被執(zhí)行,由于此時的任務切換都是在非異常形式下進展的,它的工作是先將當前任務的pu現(xiàn)場保存到該任務堆棧中,然后獲得最高優(yōu)先級任務的堆棧指針,從該堆棧中恢復此任務的pu現(xiàn)場,使之繼續(xù)執(zhí)行。SInttxS中斷級的任務切換,它是在時鐘中斷ISR中斷效勞例程中發(fā)現(xiàn)有高優(yōu)先級任務等待的時鐘信號到來,那么在中斷退出后直接調(diào)度就緒的高優(yōu)先級任務執(zhí)行。STikISR時鐘中斷處理函數(shù),它的主要任務是負責處理時鐘中斷,調(diào)用系統(tǒng)實現(xiàn)的STieTik函數(shù),假如有等待時鐘信號的高優(yōu)先級任務,那么需要在中斷級別上調(diào)度其執(zhí)行。其他相關的兩個函數(shù)是SIntEnter和SIntExit
11、,都需要在ISR中執(zhí)行。移植完以上程序后,用戶就可以結合自己的工程要求來編寫自己的應用程序了,用戶可以添加如打英空等待等任務,以下給出了一個例程,通過調(diào)用STaskreate()函數(shù)注冊了三個任務,由系統(tǒng)根據(jù)最優(yōu)調(diào)度原理進展調(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.*/四、驅動程序的添加由于U/S提供的僅僅是一個任務調(diào)度的內(nèi)核,通過以上移植,要想得到一個相對完好、實時的嵌入式多任務操作系統(tǒng),還必須進展相當多的擴展工作。主要有:建立文件系統(tǒng)、通過開發(fā)如LD液晶顯示、USB通信、鍵盤、串口等驅動程序從而提供給用程序調(diào)用的API函數(shù),還有創(chuàng)立圖形用戶接口GUI函數(shù)等,下面主
13、要介紹一下串口驅動程序的開發(fā)。vidUart_Init(intlk,intbaud)該函數(shù)主要是初始化串口,設置波特率,其中l(wèi)k是系統(tǒng)主時鐘頻率,band參數(shù)傳遞串口通信波特率。vidUart_Selet(inth)該函數(shù)進展串口選擇,h傳遞串口號。harUart_Geth(vid)該函數(shù)從串口讀取字符,存放在一數(shù)組內(nèi)。vidUart_GetString(har*string)該函數(shù)讀取要發(fā)送的字符串,并一個一個字符地從串口發(fā)送。vidUart_SendByte(intdata)該函數(shù)通過串口發(fā)送數(shù)據(jù),data是需要發(fā)送的字符。vidUart_SendString(har*pt)該函數(shù)通過串口發(fā)送字符串,pt是字符串首地址的指針。通過以上接口函數(shù),系統(tǒng)向用戶提供了屏蔽底層硬件的API函數(shù),用戶可以通過調(diào)用以上函數(shù),方便地對串口進展操作。五、完畢語目前市場上基于/s嵌入式操作系統(tǒng)的產(chǎn)品比擬多,應用領域包括工業(yè)控制、信息家電、網(wǎng)絡設備等方面,而且基于/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 糧食代理合同范本
- 個人自建包工合同范本
- 學校證訂書合同范本
- 個人藏品交易合同范本
- 臨時設施 勞務合同范本
- 房屋工程終止合同范本
- 海邊出售地皮合同范本
- 個人定車合同范本
- 2025工程合同范本簡化、實際案例解析
- 2025商業(yè)辦公樓租賃合同模板
- 藥店員工勞動的合同
- 部編版四年級語文《古詩詞大會比賽》精美課件
- 山東濰坊2024年中考語文現(xiàn)代文閱讀真題
- 2024年02月天津2024年天津銀行總行投資銀行部社會招考筆試歷年參考題庫附帶答案詳解
- 文化背景與人格差異-深度研究
- DB11-T 1253-2022 地埋管地源熱泵系統(tǒng)工程技術規(guī)范
- 蘇教版六年級下數(shù)學全冊教學設計教案(帶板書設計教學反思全)5
- DB32∕T 943-2006 道路聲屏障質量檢驗評定
- 2025年浙江溫州市工業(yè)投資集團所屬溫州快鹿集團公司招聘筆試參考題庫附帶答案詳解
- 礦山勞務承包合同范本
- 小學生合理膳食知識課件
評論
0/150
提交評論