




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在卩C/OSII下,設(shè)計(jì)了一個(gè)通用的設(shè)備管理模型, 稱為通用驅(qū)動(dòng)框架,通過該 驅(qū)動(dòng)框架,可以實(shí)現(xiàn)對(duì)硬件設(shè)備的統(tǒng)一、一致的管理,同時(shí),也為上層應(yīng)用程序 提供了統(tǒng)一、一致的設(shè)備訪問在卩C/OS-II下,設(shè)計(jì)了一個(gè)通用的設(shè)備管理模型,稱為通用驅(qū)動(dòng)框架,通過該驅(qū)動(dòng) 框架,可以實(shí)現(xiàn)對(duì)硬件設(shè)備的統(tǒng)一、一致的管理,同時(shí),也為上層應(yīng)用程序 提供了統(tǒng)一、一致的設(shè)備訪問接口,并在以 ARM7TDMI-為核心的LPC2210微控制器開發(fā)板上給 出了一例實(shí)現(xiàn)。1、概述 在嵌入式應(yīng)用系統(tǒng)中使用嵌入式操作系統(tǒng)可以提高應(yīng)用系統(tǒng)的開發(fā)效率和提升嵌入式應(yīng)用系統(tǒng)的穩(wěn)定可靠性, 因此,在嵌入式應(yīng)用系統(tǒng)中使用嵌入式操作系統(tǒng)將成為嵌入式 應(yīng)用系統(tǒng)的設(shè)計(jì)主流⑴。卩 C/OSII是由美國(guó)學(xué)者 Labrosse設(shè)計(jì)的一個(gè)優(yōu)秀的嵌入式實(shí) 時(shí)操作系統(tǒng)[2],它是一個(gè)源碼公開、可移植、可固化、可裁剪、占先式的實(shí)時(shí)多任務(wù)操 作系統(tǒng),目前已經(jīng)得到廣泛應(yīng)用。卩C/OSII提供了操作系統(tǒng)必須具備的基本功能,包括:任務(wù)管理、信號(hào)量管理、郵箱 管理、消息隊(duì)列管理、事件管理、時(shí)間管理、內(nèi)存管理,但它不提供設(shè)備管理和文件系 統(tǒng)管理,已有研究者對(duì)卩C/OSII進(jìn)行了文件子系統(tǒng)功能擴(kuò)展⑻。在實(shí)際應(yīng)用中,對(duì)系統(tǒng)設(shè)備的有效管理也是一個(gè)非常重要的任務(wù),因此,需要對(duì)卩C/OSII進(jìn)行擴(kuò)展,以實(shí)現(xiàn)這一功能。本文為卩C/OSII設(shè)計(jì)了一個(gè)對(duì)系統(tǒng)設(shè)備進(jìn)行統(tǒng)一管理的通用驅(qū)動(dòng)框架,在此框架下,可以屏蔽系統(tǒng)硬件的差異,在無約束地發(fā)揮硬件能力的前提下,為上層應(yīng)用提供了統(tǒng)一、一致的調(diào)用接口,從而實(shí)現(xiàn)了對(duì)系統(tǒng)設(shè)備的有效管理。API2、卩C/OSII下通用驅(qū)動(dòng)框架的基本模型為了給上層應(yīng)用提供統(tǒng)一、 一致的系統(tǒng)設(shè)備調(diào)用接口, 需要對(duì)上層應(yīng)用程序?qū)ο到y(tǒng)設(shè)備 的訪問操作進(jìn)行抽象,在這方面, Unix系統(tǒng)和Linux系統(tǒng)做得比較成功 [4][5]。本文借鑒 了Unix及Linux系統(tǒng)的成功經(jīng)驗(yàn),同時(shí)考慮到嵌入式操作系統(tǒng)的特殊性,為卩 C/OSII建立了如圖 1所示的通用驅(qū)動(dòng)框架模型。 在圖1所示的通用驅(qū)動(dòng)框架模型中, 共包括三 個(gè)層次: (1)上層訪問抽象接口層:在這一層,通過對(duì)設(shè)備訪問操作的抽象,為上層應(yīng)用提供 了5個(gè)訪問接口 API:UDFOpenUDFReadUDFWrite、UDFIoctrl、UDFCIose分別用于打開設(shè)備、讀設(shè)備、寫設(shè)備、設(shè)備控制和關(guān)閉設(shè)備。(圖i通用驅(qū)動(dòng)框架模型)2)設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)層:這是通用驅(qū)動(dòng)框架的核心,在這一層,為系統(tǒng)中的每個(gè)硬件設(shè)備分配唯一的設(shè)備名,上層應(yīng)用程序通過將設(shè)備名作為參數(shù)傳遞給UDFOpen函數(shù)實(shí)現(xiàn)對(duì)相應(yīng)設(shè)備的核心管理數(shù)據(jù)結(jié)構(gòu)的定位尋址,通過尋址,UDFOpe函數(shù)得到相應(yīng)設(shè)備的核心管理數(shù)據(jù)結(jié)構(gòu),并定位到相應(yīng)的設(shè)備驅(qū)動(dòng)模塊,獲得相應(yīng)硬件設(shè)備的操作函數(shù)表,再通過上層訪問抽象接口層的其他接口函數(shù)UDFRea、UDFWrite、UDFIoctrl和UDFClose實(shí)現(xiàn)對(duì)設(shè)備的統(tǒng)一訪問控制。(3)硬件設(shè)備驅(qū)動(dòng)模塊層:這一層是硬件設(shè)備驅(qū)動(dòng)模塊功能的實(shí)現(xiàn)層,對(duì)各個(gè)硬件設(shè) 備的驅(qū)動(dòng)在相應(yīng)的硬件設(shè)備驅(qū)動(dòng)模塊中完成。各個(gè)硬件設(shè)備驅(qū)動(dòng)模塊,原則上 需要實(shí) 現(xiàn)如下幾個(gè)函數(shù):devOpendevReaddevWrite 、devIoctrl和devClose分別完成相 應(yīng)設(shè)備的打開、讀、寫、控制和關(guān)閉,當(dāng)然,可以根據(jù)具體設(shè)備的特性,只實(shí)現(xiàn)
5
個(gè)驅(qū)動(dòng)函數(shù)的其中一部分,例如,如果某設(shè)備不支持
寫操作,那么就不用實(shí)現(xiàn)
devWrite函數(shù)。下面,對(duì)該模型的工作原理進(jìn)行簡(jiǎn)單描述:首先,在上層應(yīng)用程序可以訪問硬件設(shè)備之前,需要首先打開欲操作的設(shè)備,這可以通過調(diào)用“上層訪問抽象接口層”的
UDFOpen函數(shù)實(shí)現(xiàn)。上層應(yīng)用程序?qū)⒂蜷_的設(shè)備的設(shè)備名傳遞給
UDFOpe
函數(shù),
UDFOpe
函數(shù)通過該設(shè)備名從“設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)”中得 到相應(yīng)設(shè)備的核心數(shù)據(jù)結(jié)構(gòu),進(jìn)而得 到相應(yīng)設(shè)備的操作函數(shù)表,并調(diào)用設(shè)備驅(qū)動(dòng)模塊的 devOpen函數(shù)對(duì)設(shè)備進(jìn)行初始化,當(dāng) 完成相應(yīng)設(shè)備的初始化后,UDFOpe函數(shù)返回給上層應(yīng)用程序一個(gè)句柄,這個(gè)句柄是 上層應(yīng)用程序進(jìn)行后續(xù)設(shè)備操作的基礎(chǔ)。現(xiàn)在假設(shè)上層應(yīng)用程序需要從設(shè)備中讀取數(shù)據(jù),這是通過調(diào)用“上層訪問抽象接口層”的UDFRea(函數(shù)完成的:上層應(yīng)用程序?qū)DFOpei函數(shù)返回的設(shè)備句柄和相關(guān)的讀取參數(shù)傳遞給UDFRea(函數(shù),UDFRea(函數(shù)通過該句柄從“設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)”中得到相應(yīng)設(shè)備的核心數(shù)據(jù)結(jié)構(gòu),進(jìn)而得到相應(yīng)設(shè)備的操作函數(shù)表,并調(diào)用設(shè)備驅(qū)動(dòng)模塊的(evRea(函數(shù)對(duì)設(shè)備進(jìn)行讀取操作,當(dāng)完成讀取操作后,將讀取到的數(shù)據(jù)返回給上層應(yīng)用程序。其它的操作如UDFWrite、UDFIoctrl和UDFClose是類似的。3、卩C/OSII下通用驅(qū)動(dòng)框架的實(shí)現(xiàn)3.1實(shí)現(xiàn)環(huán)境本文在以下的環(huán)境中實(shí)現(xiàn)了所設(shè)計(jì)的通用驅(qū)動(dòng)框架:開發(fā)工具采用ARM公司的ADS1.2,目標(biāo)板采用周立功公司開3、卩C/OSII下通用驅(qū)動(dòng)框架的實(shí)現(xiàn)3.1實(shí)現(xiàn)環(huán)境本文在以下的環(huán)境中實(shí)現(xiàn)了所設(shè)計(jì)的通用驅(qū)動(dòng)框架:開發(fā)工具采用ARM公司的ADS1.2,目標(biāo)板采用周立功公司開發(fā)設(shè)計(jì)的以LPC2210為微控制器的SmartARM221開發(fā)板⑹。LPC2210是一顆以ARM7TDMI-為核心的微控制器,支持8位、16位、32位總線,具有豐富的片內(nèi)外設(shè),其中就包括兩個(gè)具有16BytesFIFO的UART接口和高速l2C接口。開發(fā)主機(jī)通過EasyJTAG連接目標(biāo)板以建立交叉開發(fā)調(diào)試環(huán)境。3.2設(shè)備管理核心設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)實(shí)現(xiàn)如上文所述:通用驅(qū)動(dòng)框架以“設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)”為核心,它在模型中起著承上啟下的作用。設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)結(jié)構(gòu):UDFFrameworl和UDFOperations,定義如下:type(efstruct{INT8U(eviceName[UDF_MAX_NAME];/設(shè)/備名INT8U(eviceType;//1—塊設(shè)備,2—字符設(shè)備;INT8UcanShare(;//0---不可共享使用,1—可共享使用INT16UopenCount;//UDFOperationsop;//
對(duì)于共享設(shè)備,此字段為打開次數(shù)計(jì)數(shù) ;設(shè)備驅(qū)動(dòng)模塊提供的設(shè)備操作函數(shù)表;}UDFFramework;該結(jié)構(gòu)描述了系統(tǒng)設(shè)備的特性, 包括:設(shè)備名、設(shè)備類型、 共享設(shè)備的打開計(jì)數(shù)、 設(shè)備操作函數(shù)表等,通過建立 UDFFramewor結(jié)構(gòu)的一個(gè)數(shù)組來描述系統(tǒng)中的所 有設(shè)備,并通過設(shè)備名字段deviceName實(shí)現(xiàn)對(duì)設(shè)備操作函數(shù)表 UDFOperations 結(jié)構(gòu)的尋地定位。 UDFOperations結(jié)構(gòu)定義如下:typedefstruct{INT32S(*devOpen)(void*pd);INT32S(*devRead)(INT8S*buffer,INT32Ublen,INT32UlenToRead,INT8UwaitType);INT32S(*devWrite)(INT8S*buffer,INT32UlenToWrite,INT8UwaitType);INT32S(*devIoctl)(INT32Utoo,void*pd);INT32S(*devClose)(void*pd);}UDFOperations;該結(jié)構(gòu)定義了相應(yīng)設(shè)備的操作函數(shù)表, 具體的操作函數(shù)的實(shí)現(xiàn)在相應(yīng)的設(shè)備驅(qū)動(dòng) 模塊中提供,通過使用通用驅(qū)動(dòng)框架的設(shè)備驅(qū)動(dòng)安裝函數(shù)可以將設(shè)備驅(qū)動(dòng)模塊安 裝至UUDFFramewor結(jié)構(gòu)中。3.3 上層訪問抽象接口層設(shè)計(jì)實(shí)現(xiàn) 基于設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu),上層訪問抽象接口層為上層應(yīng)用提供了 5個(gè)API函數(shù):UDFOpenUDFReadUDFWrite、UDFIoctrl、UDFClose本文以UDFOpen和UDFRead^例說明這些API函數(shù)的實(shí)現(xiàn)邏輯。UDFOpei函數(shù)的實(shí)現(xiàn)邏輯如下:INT32SUDFOpen(char*deviceName,void*pd){在UDFFramewor結(jié)構(gòu)數(shù)組中查找名為deviceName的設(shè)備;if(找到名為deviceName的設(shè)備){if(設(shè)備已被其它應(yīng)用打開 ){if(設(shè)備不可共享 )返回出錯(cuò)信息并返回;else將設(shè)備的打開計(jì)數(shù)器 openCount加1}else{從UDFFramewor結(jié)構(gòu)中得到該設(shè)備的 UDFOperations結(jié)構(gòu)數(shù)據(jù)并調(diào)用該設(shè)備的 devOpen函數(shù)初始化該設(shè)備;將UDFFramewor結(jié)構(gòu)的數(shù)組下標(biāo)作為句柄 handle返回給上層應(yīng)用程序;}}else{提示設(shè)備驅(qū)動(dòng)未安裝并返回;}}UDFRea(函數(shù)的實(shí)現(xiàn)邏輯如下:INT32SUDFRead(INT32Uhandle,INT8S*buffer,INT32Ublen,INT32UlenToRead,INT8UwaitType){判斷參數(shù) handle句柄是否合法;if(handle合法)returnUDFF[handle].op.devRead(buffer,blen,lenToRead,waitType);else返回出錯(cuò)信息并返回;}3.4 硬件設(shè)備驅(qū)動(dòng)模塊的設(shè)計(jì)實(shí)現(xiàn)本文在該通用驅(qū)動(dòng)框架下實(shí)現(xiàn)了驅(qū)動(dòng)模塊。LPC2210的UART0
UART0S設(shè)備滿足
備和|2C16C550
接口設(shè)備CAT1025JI-30的EPROMK工業(yè)標(biāo)準(zhǔn),具有 16Bytes的接收FIFO
備的和16Bytes的發(fā)送FIFO,本文采用 中斷方式接收數(shù)據(jù)、查 詢方式發(fā)送數(shù)據(jù),按照通用驅(qū)動(dòng)框架設(shè)備驅(qū)動(dòng)模塊的設(shè)計(jì)要求,
為UART
(實(shí)現(xiàn)了以下驅(qū)動(dòng)函數(shù):UARTOOpenUARTOReadUARTOWriteUARTOIoctrl 、UARTOCIose 并通過通用驅(qū)動(dòng)框架的設(shè)備驅(qū)動(dòng)程序安裝函數(shù) InstallDriver 將UART(驅(qū)動(dòng)模塊安裝到UDFFramework吉構(gòu)數(shù)組中。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川省稅務(wù)系統(tǒng)遴選面試真題附詳解含答案
- 內(nèi)科疾病診療成本控制分析
- 化妝品衛(wèi)生知識(shí)培訓(xùn)考核試題(含答案)
- 遼師大版(三起)小升初考試英語試卷
- 2025年上海市高級(jí)技工學(xué)校招聘考試筆試試題(含答案)
- 基因疾病的探究與治療方法
- 老師愛崗敬業(yè)課件
- 服裝品牌代理經(jīng)銷合同范本
- 專業(yè)市場(chǎng)場(chǎng)地租賃履約保證金合同
- 拆除工程風(fēng)險(xiǎn)規(guī)避與免責(zé)合同
- 浙江杭州市2024-2025學(xué)年高一下學(xué)期6月期末考試英語試題及答案
- 喘息性支氣管肺炎的護(hù)理查房
- 新型電極材料成本控制-洞察及研究
- 2025年初中數(shù)學(xué)知識(shí)點(diǎn)測(cè)試題及答案
- 小學(xué)生集體活動(dòng)安全課件
- 成都市2022級(jí)(2025屆)高中畢業(yè)班摸底測(cè)試(零診)數(shù)學(xué)試卷(含答案)
- 冰淇淋行業(yè)招商策劃
- 《FABI、ACE、CPR介紹話術(shù)》
- 酒店住宿水單模板
- 【教學(xué)】第五講-化學(xué)戰(zhàn)劑的種類與性質(zhì)
- 阿貝折射儀使用說明書(
評(píng)論
0/150
提交評(píng)論