版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北師大版六年級(jí)下數(shù)學(xué)表格式教案
- 酶解法制備高效環(huán)保洗滌劑配方
- 森林經(jīng)營(yíng)實(shí)施方案
- 2024高中地理第二章地球上的大氣第二節(jié)氣壓帶和風(fēng)帶第1課時(shí)氣壓帶和風(fēng)帶的形成學(xué)案新人教版必修1
- 2024高中物理第四章電磁感應(yīng)章末質(zhì)量評(píng)估含解析新人教版選修3-2
- 2024高中語(yǔ)文第三單元因聲求氣吟詠詩(shī)韻將進(jìn)酒訓(xùn)練含解析新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 2024高中語(yǔ)文精讀課文一第2課2魯迅:深刻與偉大的另一面是平和二作業(yè)含解析新人教版選修中外傳記蚜
- 2024高考化學(xué)一輪復(fù)習(xí)第2章元素與物質(zhì)世界第6講氧化還原反應(yīng)的基本概念和規(guī)律學(xué)案
- 2024高考地理一輪復(fù)習(xí)專練58區(qū)域地理環(huán)境的差異和發(fā)展含解析新人教版
- 2025高考數(shù)學(xué)考二輪題型專項(xiàng)練3客觀題8+3+3標(biāo)準(zhǔn)練(C)-專項(xiàng)訓(xùn)練【含答案】
- DB3303T 059-2023 政務(wù)信息化項(xiàng)目軟件開(kāi)發(fā)費(fèi)用測(cè)算規(guī)范
- 康復(fù)科宣傳展板
- 二零二五年度IT公司內(nèi)部技術(shù)文檔保密與使用規(guī)范協(xié)議3篇
- 儲(chǔ)能系統(tǒng)技術(shù)服務(wù)合同
- 無(wú)錫市區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 2024醫(yī)院與康復(fù)機(jī)構(gòu)康復(fù)治療合作協(xié)議書(shū)3篇
- 2024 年廣東公務(wù)員考試行測(cè)試題【A類+B類+C類】真題及答案
- 《中國(guó)民族史》重點(diǎn)筆記(期末)
- 湖北省學(xué)前教育技能高考《幼兒心理》歷年考試真題題庫(kù)(含答案)
- 山東師范大學(xué)《文學(xué)評(píng)論寫(xiě)作》2021-2022學(xué)年第一學(xué)期期末試卷
- 抓斗課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論