淺析嵌入式μC設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
淺析嵌入式μC設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
淺析嵌入式μC設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
淺析嵌入式μC設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
淺析嵌入式μC設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)_第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、淺析嵌入式(3設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)淺析嵌入式 C/OS- n設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序是任何操作系統(tǒng)的必不可少的、最保密的一個(gè) 組成部分,它們實(shí)現(xiàn)了計(jì)算機(jī)系統(tǒng)所有附屬設(shè)備的一個(gè)標(biāo)準(zhǔn)接口,它 包含與硬件直接相關(guān)的設(shè)備驅(qū)動(dòng)。從廣義上說(shuō),”驅(qū)動(dòng)程序”是指 一些函數(shù)的集合,這些函數(shù)都能對(duì)硬件設(shè)備進(jìn)行操作。本文簡(jiǎn)單分 析了 C/OS-n下設(shè)備驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)備驅(qū)動(dòng)程序是任何操作系統(tǒng)的必不可少的、最保密的一個(gè)組 成部分,它們實(shí)現(xiàn)了計(jì)算機(jī)系統(tǒng)所有附屬設(shè)備的一個(gè)標(biāo)準(zhǔn)接口,它包 含與硬件直接相關(guān)的設(shè)備驅(qū)動(dòng)。從廣義上說(shuō),”驅(qū)動(dòng)程序”是指一 些函數(shù)的集合,這些函數(shù)都能對(duì)硬件設(shè)備進(jìn)行操作。驅(qū)動(dòng)程序的概 念在

2、沒(méi)有固定的操作系統(tǒng)的時(shí)候,是一個(gè)比較模糊的定義。簡(jiǎn)單地 理解就是提供了一個(gè)軟件到硬件(也能夠是虛擬硬件)操作的函 數(shù)。一般主要應(yīng)該包括:設(shè)備初始化、設(shè)備的讀寫(xiě)(輸入輸出)、設(shè) 備的控制等信息。在“ C/OS- n下沒(méi)有統(tǒng)一的設(shè)備驅(qū)動(dòng)接口 一一不 像windows或者linux下經(jīng)過(guò)設(shè)備文件的定義模式,因此,把一些對(duì) 硬件操作是經(jīng)過(guò)一般的函數(shù)來(lái)完成的,叫成”驅(qū)動(dòng)程序”也不為 過(guò)。簡(jiǎn)介外設(shè)驅(qū)動(dòng)程序是實(shí)時(shí)內(nèi)核和硬件之間的接口,是連接底層硬件和內(nèi) 核的紐帶。編寫(xiě)驅(qū)動(dòng)程序模塊應(yīng)滿足以下主要功能:對(duì)設(shè)備初始化;把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù);讀取應(yīng)用程序傳送給設(shè)備的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù) 據(jù);

3、監(jiān)測(cè)和處理設(shè)備出現(xiàn)的異常。由于在“ C/OS-II下沒(méi)有統(tǒng) 一的設(shè)備驅(qū)動(dòng)接口,在該操作系統(tǒng)中設(shè)備驅(qū)動(dòng)的設(shè)計(jì)和實(shí)現(xiàn)主要是 經(jīng)過(guò)一些對(duì)硬件操作的函數(shù)來(lái)完成。MC/os-n操作系統(tǒng)啟動(dòng)過(guò)程中的硬件初始化基于“C/OS- II的應(yīng)用系統(tǒng)工作時(shí),首先把CPU初始 化;接著進(jìn)行操作系統(tǒng)初始化,主要完成任務(wù)控制塊(TCB )初始 化、TCB優(yōu)先級(jí)表初始化、空任務(wù)的創(chuàng)立等;然后開(kāi)始創(chuàng)立新任 務(wù),并可在新創(chuàng)立的任務(wù)中再創(chuàng)立其它的新任務(wù);最后調(diào)用OSST ART()函數(shù)啟動(dòng)多任務(wù)調(diào)度。當(dāng)“ C/OS-II實(shí)際移植到具體的硬件平臺(tái)中時(shí),系統(tǒng)初始化時(shí) 還要進(jìn)行硬件的初始化。主函數(shù)是系統(tǒng)啟動(dòng)首先執(zhí)行的一個(gè)函數(shù), 在啟動(dòng)

4、“ C/OS II之前,要屏蔽所有中斷,并對(duì)全局變量初始化,防 止運(yùn)行出錯(cuò)。硬件初始化主要包括中斷初始化,串口、鍵盤(pán)、顯示 等設(shè)備初始化?!?C/OS II的初始化經(jīng)過(guò)調(diào)用OSInit()函數(shù),為OS 分配任務(wù)隊(duì)列、優(yōu)先級(jí)狀態(tài)表和準(zhǔn)備狀態(tài)表,初始化全局變量,而且 創(chuàng)立一個(gè)空循環(huán)任務(wù)。接下來(lái),在啟動(dòng)“ C/OS II前調(diào)用 OSTaskCreate()創(chuàng)立所有用戶任務(wù),并置準(zhǔn)備態(tài),創(chuàng)立任務(wù)時(shí),要指定 每個(gè)任務(wù)的優(yōu)先級(jí)、堆棧大小和位置、任務(wù)函數(shù)入口。調(diào)用 OS2Start()啟動(dòng)“ C/OS一11。從就緒隊(duì)列中找到優(yōu)先級(jí)最高的任務(wù), 作為當(dāng)前任務(wù)執(zhí)行。流程如圖所示。MC/OS-n操作系統(tǒng)對(duì)硬件的操

5、作和控制3.1函數(shù)控制硬件前面已經(jīng)提到過(guò),不像其它的操作系統(tǒng),在 C/OS11中沒(méi)有 統(tǒng)一的設(shè)備驅(qū)動(dòng)接口,因此對(duì)硬件的操作和控制能夠經(jīng)過(guò)函數(shù)來(lái)完 成。在啟動(dòng)過(guò)程中完成硬件初始化后,系統(tǒng)創(chuàng)立一個(gè)空循環(huán)任務(wù),然 后就能夠調(diào)用OSTaskCreate()創(chuàng)立用戶任務(wù),在任務(wù)用戶任務(wù)中選 擇要控制的硬件,選擇最佳的控制方法,調(diào)用用戶自己編寫(xiě)的函數(shù)來(lái) 完成。3.2 BSPBSP(板級(jí)支持包)是介于底層硬件和操作系統(tǒng)之間的軟件層次, 它完成系統(tǒng)上電后最初的硬件和軟件初始化,并對(duì)底層硬件進(jìn)行封 裝,使得操作系統(tǒng)不再面對(duì)具體的操作。為“C/OS-II編寫(xiě)一個(gè)簡(jiǎn)單的BSP。它首先設(shè)置CPU內(nèi)部寄存器 和系統(tǒng)堆棧

6、,并初始化堆棧指針,建立程序的運(yùn)行和調(diào)用環(huán)境;然后 能夠方便地使用C語(yǔ)言設(shè)置硬件的配置環(huán)境,并編制相應(yīng)的操作函 數(shù),為操作系統(tǒng)調(diào)用提供統(tǒng)一的接口 ;在CPU、板級(jí)和程序自身初 始化完成后,就能夠把CPU的控制權(quán)交給操作系統(tǒng)了。實(shí)際應(yīng)用舉例既然在“ C/OS-II下沒(méi)有統(tǒng)一的設(shè)備驅(qū)動(dòng)接口,系統(tǒng)對(duì)硬件的 控制是經(jīng)過(guò)一些對(duì)硬件操作的函數(shù)來(lái)完成的。下面以在“ C/OS-II 實(shí)時(shí)內(nèi)核下驅(qū)動(dòng)程序讀取A/D的三種方法,分析在實(shí)際的工程實(shí)踐 中 C/OS-II設(shè)備驅(qū)動(dòng)的設(shè)計(jì)和實(shí)現(xiàn),以及在設(shè)計(jì)過(guò)程中應(yīng)注意的 一些問(wèn)題。以一個(gè)單片機(jī)數(shù)據(jù)采集系統(tǒng)為例,硬件環(huán)境基于C8051F015單片 機(jī)。A/D轉(zhuǎn)換是單片機(jī)數(shù)據(jù)

7、采集系統(tǒng)的重要組成部分,實(shí)時(shí)內(nèi)核下 A/D驅(qū)動(dòng)程序的實(shí)現(xiàn)過(guò)程主要取決于A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間。我 們首先比較和分析 C/OS-II下A/D采樣數(shù)據(jù)的三種方法;其次介 紹C8051F015單片機(jī)A/D模數(shù)轉(zhuǎn)換器的配置及特點(diǎn);最后,在 C/OS-II內(nèi)核移植到8位單片機(jī)C8051F015的基礎(chǔ)上,介紹編寫(xiě) A/D驅(qū)動(dòng)程序的一般思路和方法。4.1 “ C/OS-II實(shí)時(shí)內(nèi)核下的A/D讀取方法實(shí)時(shí)內(nèi)核下,驅(qū)動(dòng)程序采用什么方法讀取A/D采樣數(shù)據(jù)是首先 考慮的問(wèn)題。許多因素將影響讀取A/D,如 A/D的轉(zhuǎn)換時(shí)間、模擬 值的轉(zhuǎn)換頻率、輸入通道數(shù)等,但最主要的是取決于A/D的轉(zhuǎn)換時(shí) 間。典型的A/D轉(zhuǎn)換電路由模

溫馨提示

  • 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)論