国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式系統(tǒng)教學(xué)方法改革實(shí)踐

2010-03-21 09:38孫啟龍
關(guān)鍵詞:嵌入式操作系統(tǒng)驅(qū)動(dòng)程序內(nèi)核

張 林,劉 輝,孫啟龍,何 輝

(中國(guó)礦業(yè)大學(xué)信息與電氣工程學(xué)院,江蘇 徐州 221116)

嵌入式系統(tǒng)是一種以應(yīng)用為中心,為應(yīng)用所推動(dòng)的專(zhuān)用計(jì)算機(jī)系統(tǒng),其教學(xué)需要注重對(duì)學(xué)生實(shí)踐能力的培養(yǎng)。然而,從目前高校的“嵌入式系統(tǒng)原理與應(yīng)用”課程教學(xué)的情況來(lái)看,尚未突出嵌入式系統(tǒng)的以應(yīng)用為中心、軟硬件可裁剪的特點(diǎn),因而尚待努力形成更為合理的嵌入式系統(tǒng)教學(xué)體系。

從“嵌入式系統(tǒng)原理與應(yīng)用”課程的教學(xué)實(shí)踐[1]以及筆者多年的嵌入式系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)來(lái)看,該課程的講授應(yīng)不拘泥于教材。

1 嵌入式系統(tǒng)

嵌入式系統(tǒng)的體系結(jié)構(gòu)如圖1所示。其開(kāi)發(fā)一般從硬件和軟件兩方面結(jié)合在一起進(jìn)行[2]。與理論課程配套的實(shí)驗(yàn)考慮實(shí)現(xiàn)嵌入式操作系統(tǒng)的加載,熟悉和掌握嵌入式系統(tǒng)的體系結(jié)構(gòu)。

圖1 嵌入式系統(tǒng)體系結(jié)構(gòu)

通過(guò)“嵌入式系統(tǒng)原理與應(yīng)用”課程的學(xué)習(xí),學(xué)生具備一定的嵌入式系統(tǒng)開(kāi)發(fā)能力:能夠設(shè)計(jì)出相關(guān)的硬件電路,了解硬件驅(qū)動(dòng)的開(kāi)發(fā)以及系統(tǒng)軟件和應(yīng)用軟件的設(shè)計(jì)。

本課程授課應(yīng)結(jié)合其以應(yīng)用為中心的特點(diǎn),闡述嵌入式系統(tǒng)的研發(fā)過(guò)程。本文以圍繞“UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器”的設(shè)計(jì)案例加以具體說(shuō)明。首先,UART串口和網(wǎng)口這兩種接口屬于較常見(jiàn)的計(jì)算機(jī)接口;其次,各種嵌入式系統(tǒng)當(dāng)中,這兩種接口應(yīng)用廣泛,多種嵌入式操作系統(tǒng)中均已包含其相關(guān)驅(qū)動(dòng)程序,適合課程講授使用;接著,對(duì)初次接觸嵌入式系統(tǒng)的高校學(xué)生而言,串口在硬件和軟件上都均表現(xiàn)得較為簡(jiǎn)單易懂,而網(wǎng)口在研發(fā)過(guò)程中則能在軟件方面體現(xiàn)出嵌入式操作系統(tǒng)的優(yōu)勢(shì)。

由“UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器”的標(biāo)題即可啟發(fā)學(xué)生進(jìn)行有關(guān)該系統(tǒng)應(yīng)用目標(biāo)的討論。形成嵌入式系統(tǒng)開(kāi)發(fā)的第一步:根據(jù)系統(tǒng)設(shè)計(jì)的需求,分析系統(tǒng)結(jié)構(gòu),提出設(shè)計(jì)目標(biāo)。該設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)UART串口數(shù)據(jù)和以太網(wǎng)數(shù)據(jù)的相互轉(zhuǎn)換,涉及包括信號(hào)電氣特性的轉(zhuǎn)換和數(shù)據(jù)幀結(jié)構(gòu)的轉(zhuǎn)換。顯然,電氣特性的轉(zhuǎn)換由硬件電路來(lái)實(shí)現(xiàn),而數(shù)據(jù)幀結(jié)構(gòu)的轉(zhuǎn)換由相關(guān)軟件實(shí)現(xiàn)。

本案例以S3C4510為硬件核心,由Linux嵌入式操作系統(tǒng)實(shí)現(xiàn)UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器功能。

2 嵌入式系統(tǒng)的硬件開(kāi)發(fā)

系統(tǒng)開(kāi)發(fā)的第二個(gè)步是從系統(tǒng)的設(shè)計(jì)目標(biāo)出發(fā),進(jìn)行該系統(tǒng)硬件電路結(jié)構(gòu)的規(guī)劃和設(shè)計(jì)。本案例中,系統(tǒng)硬件需要提供一個(gè)UART串口的接口和一個(gè)網(wǎng)絡(luò)接口,并進(jìn)行相關(guān)協(xié)議的轉(zhuǎn)換,核心器件考慮采用嵌入式處理器實(shí)現(xiàn)。因此,必須首先在課堂上給學(xué)生說(shuō)清什么是嵌入式處理器,如何選擇嵌入式處理器、以及嵌入式系統(tǒng)最小系統(tǒng)的設(shè)計(jì)等問(wèn)題。

嵌入式處理器的選型主要從系統(tǒng)的功能、性能和成本等幾個(gè)方面考慮,功能上應(yīng)涵蓋所需的接口,性能上則綜合考慮系統(tǒng)的運(yùn)行速度、系統(tǒng)容量等要素。嵌入式最小系統(tǒng)是嵌入式系統(tǒng)硬件可裁剪的體現(xiàn)。最小系統(tǒng)中包含有嵌入式系統(tǒng)必備的模塊,比如,嵌入式處理器、存儲(chǔ)器、電源電路、時(shí)鐘電路和及I/O接口等,如圖2所示。

圖2 嵌入式系統(tǒng)硬件最小系統(tǒng)

一般來(lái)講,嵌入式系統(tǒng)的硬件設(shè)計(jì)宜以經(jīng)典的嵌入式最小系統(tǒng)電路為基礎(chǔ)加以擴(kuò)展,達(dá)到特定的應(yīng)用目的。比如,UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器的硬件就可在嵌入式最小系統(tǒng)的基礎(chǔ)上,增加UART串口接口和網(wǎng)絡(luò)接口電路。這些系統(tǒng)接口電路框圖如圖3所示。

圖3 UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器接口電路

3 嵌入式系統(tǒng)的軟件開(kāi)發(fā)

由圖1可知,嵌入式系統(tǒng)軟件的開(kāi)發(fā)為兩部分:嵌入式操作系統(tǒng)的開(kāi)發(fā)和應(yīng)用程序的編寫(xiě)。其中嵌入式操作系統(tǒng)部分又分為硬件驅(qū)動(dòng)的開(kāi)發(fā)和操作系統(tǒng)的裁剪。

3.1 嵌入式系統(tǒng)硬件驅(qū)動(dòng)的開(kāi)發(fā)

本文主要討論嵌入式Linux的設(shè)備驅(qū)動(dòng)開(kāi)發(fā)。Linux設(shè)備驅(qū)動(dòng)程序一般劃分為三個(gè)部分:①自動(dòng)配置和初始化子程序,負(fù)責(zé)監(jiān)測(cè)所要驅(qū)動(dòng)的硬件設(shè)備是否存在和能否正常工作;②服務(wù)于I/O請(qǐng)求的子程序;③中斷服務(wù)子程序[3]。

驅(qū)動(dòng)程序的開(kāi)發(fā)大概分為如下幾步:①在內(nèi)核中找到相近的驅(qū)動(dòng)程序,以其為模板進(jìn)行開(kāi)發(fā),有時(shí)候需要從頭開(kāi)始做;②實(shí)現(xiàn)驅(qū)動(dòng)程序的初始化:如向內(nèi)核注冊(cè)該驅(qū)動(dòng)程序;③設(shè)計(jì)所要實(shí)現(xiàn)的操作,常見(jiàn)的有open()、close()、read()和 write()等;④一些驅(qū)動(dòng)需要中斷服務(wù);⑤編譯該驅(qū)動(dòng)程序到內(nèi)核中,或者用insmod實(shí)現(xiàn)加載。

上述案例涉及UART串口和網(wǎng)口接口,兩者在Linux中支持均很完善,具備統(tǒng)一的編程接口。學(xué)生在學(xué)習(xí)的過(guò)程中并不需要從頭開(kāi)始編寫(xiě)驅(qū)動(dòng)程序,只需讀懂相關(guān)驅(qū)動(dòng)程序代碼加以配置和裝載,便可達(dá)到快速認(rèn)知的效果。與理論課程配套的實(shí)驗(yàn),要求學(xué)生實(shí)現(xiàn)串口和網(wǎng)口驅(qū)動(dòng)的配置和裝載,理解嵌入式系統(tǒng)中驅(qū)動(dòng)程序的作用、工作機(jī)理和開(kāi)發(fā)方法。

3.2 嵌入式Linux的裁剪

在嵌入式環(huán)境中軟件運(yùn)行所需的硬件資源十分有限,為了在實(shí)現(xiàn)應(yīng)用功能的同時(shí)最大限度地減小對(duì)硬件的要求,常常要對(duì)軟件進(jìn)行裁剪。嵌入式Linux的裁剪主要發(fā)生在內(nèi)核和文件系統(tǒng)內(nèi)。

與理論課程相配套的實(shí)驗(yàn)課要求實(shí)現(xiàn)“UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器”中嵌入式Linux操作系統(tǒng)內(nèi)核及文件系統(tǒng)的裁剪,掌握裁剪的原則和方法。

1)裁剪嵌入式Linux內(nèi)核

Linux內(nèi)核是非常龐大的軟件工程,由于高度模塊化,在裁剪內(nèi)核時(shí)只要針對(duì)實(shí)際應(yīng)用,選擇必需的模塊即可。

內(nèi)核裁剪時(shí)應(yīng)選擇網(wǎng)絡(luò)協(xié)議棧、TCP/IP協(xié)議、UART串口驅(qū)動(dòng)和以太網(wǎng)口驅(qū)動(dòng)[4]等模塊。

2)裁剪嵌入式Linux文件系統(tǒng)

文件系統(tǒng)占嵌入式Linux軟件很大比重,即使僅包含最基本軟件的文件系統(tǒng),其大小也達(dá)到內(nèi)核的2~3倍,因此對(duì)文件系統(tǒng)的裁剪至關(guān)重要。

3.3 應(yīng)用程序

要完成“UART串口—網(wǎng)口協(xié)議轉(zhuǎn)換器”這一項(xiàng)目,還需要完成嵌入式系統(tǒng)開(kāi)發(fā)的第三個(gè)步驟,即UART串口數(shù)據(jù)幀向以太網(wǎng)數(shù)據(jù)幀結(jié)構(gòu)的轉(zhuǎn)換。借助這部分內(nèi)容,可以向?qū)W生介紹一些相關(guān)基礎(chǔ)知識(shí),比如嵌入式系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧和 socket編程等。而具體的實(shí)現(xiàn)也作為課程配套實(shí)驗(yàn),交由學(xué)生自行完成。

4 結(jié)語(yǔ)

“嵌入式系統(tǒng)原理與應(yīng)用”是一門(mén)應(yīng)用性很強(qiáng)的課程,終極目標(biāo)是面向?qū)嶋H應(yīng)用。通過(guò)連續(xù)幾個(gè)學(xué)期的實(shí)踐發(fā)現(xiàn),課堂內(nèi)容主要講解概念、開(kāi)發(fā)流程和方法,同時(shí)結(jié)合一個(gè)具體的嵌入式系統(tǒng)開(kāi)發(fā)項(xiàng)目,將理論與實(shí)踐結(jié)合在一起,這對(duì)學(xué)生動(dòng)手能力和創(chuàng)新能力的培養(yǎng),能夠達(dá)到更好的效果,學(xué)生在學(xué)習(xí)之后對(duì)系統(tǒng)概念的理解,對(duì)開(kāi)發(fā)方法的掌握更透徹。

[1]徐敏,林瑞金,關(guān)健生.嵌入式系統(tǒng)教學(xué)改革與實(shí)踐[J].南京:電氣電子教學(xué)學(xué)報(bào),2009(6):13-14,22

[2]Tammy Noergaard著,馬洪兵,谷源濤譯.嵌入式系統(tǒng)硬件與軟件架構(gòu)[M].北京:人民郵電出版社,2008

[3]Christopher Hallinan.嵌入式Linux開(kāi)發(fā)(英文版)[M].北京:人民郵電出版社,2008

[4]劉輝.基于嵌入式 Linux的接入網(wǎng)通信設(shè)備軟件架構(gòu)研究與設(shè)計(jì)[D].徐州:中國(guó)礦業(yè)大學(xué)圖書(shū)館,2006

猜你喜歡
嵌入式操作系統(tǒng)驅(qū)動(dòng)程序內(nèi)核
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
計(jì)算機(jī)嵌入式操作系統(tǒng)分析
微生物內(nèi)核 生態(tài)型農(nóng)資
關(guān)于高校嵌入式操作系統(tǒng)課程教學(xué)的探索與思考
基于嵌入式操作系統(tǒng)的工業(yè)采集板設(shè)計(jì)
應(yīng)用服務(wù)型人才培養(yǎng)體系下的嵌入式操作系統(tǒng)教學(xué)改革探索
基于MPC8280的CPU單元與內(nèi)部總線(xiàn)驅(qū)動(dòng)程序設(shè)計(jì)
醴陵市| 苏尼特右旗| 娄烦县| 阳曲县| 榕江县| 宜春市| 东海县| 纳雍县| 通道| 富阳市| 巴青县| 牙克石市| 揭阳市| 会同县| 阳江市| 西华县| 云梦县| 莒南县| 宜宾县| 天等县| 宁津县| 正阳县| 大悟县| 青浦区| 宝坻区| 静乐县| 呈贡县| 泰来县| 彩票| 恩平市| 连云港市| 辽阳县| 临桂县| 墨玉县| 阿拉善右旗| 武定县| 新和县| 乌拉特中旗| 佛山市| 宁津县| 靖江市|