陳天洲
嵌入式系統(tǒng)是近年來發(fā)展很快的計(jì)算機(jī)方面的學(xué)科,并迅速滲透到控制、自動(dòng)化、儀器儀表等學(xué)科。浙江大學(xué)從2002年開設(shè)嵌入式課程以來,一直關(guān)注嵌入式系統(tǒng)領(lǐng)域的課程開發(fā)與建設(shè),收集了國內(nèi)外相關(guān)專業(yè)的嵌入式課程教學(xué)資料,總結(jié)并提高課程對嵌入式系統(tǒng)快速發(fā)展的適應(yīng)性。在英特爾公司的支持下,嵌入式中心從2003年以來嵌入式舉辦了多次嵌入式課程研討班,與國內(nèi)各高校多次探討了嵌入式課程的知識點(diǎn)與課程安排,并與CMU一同開發(fā)嵌入式課程資料。
嵌入式方向包括軟硬件協(xié)同設(shè)計(jì)、嵌入式體系結(jié)構(gòu)、實(shí)時(shí)操作系統(tǒng)、嵌入式產(chǎn)品設(shè)計(jì)等方面的知識,需要掌握嵌入式系統(tǒng)設(shè)計(jì)的典型開發(fā)工具,培訓(xùn)學(xué)生具備嵌入式系統(tǒng)軟、硬件的開發(fā)能力,對于特定行業(yè)領(lǐng)域(例如移動(dòng)終端、數(shù)字家庭、信息家電以及對傳統(tǒng)產(chǎn)業(yè)信息化改造)已經(jīng)逐步形成了特定的嵌入式開發(fā)方法與手段。
隨著軟硬件技術(shù)快速發(fā)展,嵌入式系統(tǒng)不再是一門課程就可以介紹清晰,而逐步成為一個(gè)課程群,該方向的專業(yè)課程可劃分為:嵌入式系統(tǒng)原理、嵌入式操作系統(tǒng)、實(shí)時(shí)系統(tǒng)、嵌入式軟件設(shè)計(jì)、軟硬件協(xié)同設(shè)計(jì)、嵌入式系統(tǒng)軟件工程、嵌入式系統(tǒng)中間件、數(shù)字信號處理等。一些學(xué)校還開設(shè)了微機(jī)外圍電路應(yīng)用設(shè)計(jì)、單片機(jī)編程、ARM等課程。
我們收集并分析了國內(nèi)部分高校在嵌入式課程上的教學(xué)大綱,以此為基礎(chǔ)設(shè)置了我們的嵌入式系統(tǒng)概論課程。表1是我們收集的大學(xué)名稱、課程名稱、學(xué)時(shí)數(shù)與知識點(diǎn),這些課程基本上是基于Intel的XScale實(shí)驗(yàn)板設(shè)計(jì)的,對我們設(shè)計(jì)“嵌入式系統(tǒng)概論”有借鑒作用。
綜合上述高校的嵌入式課程,有些是針對計(jì)算機(jī)專業(yè)開設(shè)的,有些是針對其他專業(yè)的,有本科期間開設(shè)的,也有碩士期間開設(shè)的,一些高校開設(shè)了多門嵌入式方向大課程。我們設(shè)計(jì)的“嵌入式系統(tǒng)概論”是針對本科階段開設(shè)的嵌入式方向入門課程,主要面向大三的本科生,其課程結(jié)構(gòu)如圖1所示,其前修課程一般是計(jì)算機(jī)組成、微機(jī)原理、接口、匯編、操作系統(tǒng)、程序設(shè)計(jì)語言、體系結(jié)構(gòu)。部分后續(xù)課程開設(shè)在研究生階段。
嵌入式系統(tǒng)概論課程的目的,是綜合前修計(jì)算機(jī)專業(yè)課程,以及包括數(shù)字電路等更基礎(chǔ)的知識,開拓學(xué)生對嵌入式的視野,為后續(xù)課程奠定基礎(chǔ)。因此在嵌入式課程中不會(huì)介紹匯編語言設(shè)計(jì)、接口電路的設(shè)計(jì)等知識。
我們認(rèn)為,該課程理論部分的知識點(diǎn)分布基本上如圖2所示,主要分為四大模塊,分別是嵌入式概念、嵌入式體系、嵌入式系統(tǒng)軟件、嵌入式軟件開發(fā)。實(shí)驗(yàn)部分由于各學(xué)校實(shí)驗(yàn)材料的差異,較難對比,我們的使用設(shè)備主要是30套Intel XScale與30套Motorola Dragonball。
對于嵌入式體系結(jié)構(gòu),首先介紹各種嵌入式體系結(jié)構(gòu)、處理器、DSP。
由于ARM體系是目前嵌入式系統(tǒng)工業(yè)界事實(shí)上的標(biāo)準(zhǔn),一般都以ARM體系為例介紹嵌入式體系結(jié)構(gòu),并介紹ARM匯編。由于上課學(xué)生已經(jīng)學(xué)習(xí)了匯編語言,所以需要簡單介紹ARM匯編與微機(jī)匯編的差異與特點(diǎn),要求學(xué)生以自學(xué)為主,作業(yè)為輔,可以較快地掌握該匯編。浙江大學(xué)計(jì)算機(jī)專業(yè)本科生階段在計(jì)算機(jī)組成課程中還學(xué)習(xí)了MIPS匯編,所以學(xué)生們對ARM匯編掌握起來就更快一些。
在嵌入式體系的具體實(shí)例介紹中,我們結(jié)合本課程的實(shí)驗(yàn)平臺簡要介紹XScale體系,這部分主要也是自學(xué)為主,結(jié)合實(shí)驗(yàn)環(huán)節(jié)讓學(xué)生掌握看硬件資料的能力。
在嵌入式體系結(jié)構(gòu)部分,還需要介紹嵌入式系統(tǒng)的硬件系統(tǒng),包括JTAG接口、外設(shè)、中斷、總線等。通過這部分的介紹,學(xué)生們可以了解嵌入式硬件系統(tǒng)的構(gòu)成與軟硬件接口。
嵌入式系統(tǒng)軟件就是嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)包括非實(shí)時(shí)嵌入式操作系統(tǒng)與實(shí)時(shí)嵌入式操作系統(tǒng)(RTOS),在嵌入式課程中主要介紹RTOS。在系統(tǒng)軟件模塊中將介紹實(shí)時(shí)系統(tǒng)概念、操作系統(tǒng)在嵌入式系統(tǒng)領(lǐng)域的改造,例如處理器調(diào)度的實(shí)時(shí)性改造、中斷處理、文件系統(tǒng)、MMU等。嵌入式系統(tǒng)概論課程主要介紹常見的各種嵌入式操作系統(tǒng),包括它們的特點(diǎn)、應(yīng)用領(lǐng)域,并以嵌入式Linux為例子,介紹Linux的改造、裁減與移植。
最后一個(gè)模塊是嵌入式軟件開發(fā),是介紹嵌入式軟件開發(fā)的過程,使得整門課程最終能夠形成一個(gè)完備的嵌入式開發(fā)體系。Bootloader的設(shè)計(jì),也可放在操作系統(tǒng)移植中進(jìn)行介紹。嵌入式圖形用戶界面目前沒有統(tǒng)一的標(biāo)準(zhǔn),作為概論課程需要介紹各個(gè)嵌入式GUI的優(yōu)缺點(diǎn)與適用范圍。同樣,課程介紹包括Tornado、CE.net等嵌入式開發(fā)環(huán)境,以及嵌入式中間件。課程最后將以實(shí)例來介紹嵌入式系統(tǒng)的開發(fā)流程。
作為后續(xù)課程,我們認(rèn)為一些專題性質(zhì)的開發(fā)工具,例如Wince.net開發(fā)、Symbian開發(fā)、BREW開發(fā)等,可以利用浙江大學(xué)暑假短學(xué)期為期兩周的課程實(shí)踐來完成。而實(shí)時(shí)系統(tǒng)可以單獨(dú)開設(shè)研究生層次的課程,面向領(lǐng)域的嵌入式系統(tǒng)設(shè)計(jì)可以開設(shè)相關(guān)的專題班進(jìn)行討論。部分嵌入式軟件開發(fā)的知識點(diǎn),可以交給其他課程完成,例如人機(jī)交互設(shè)計(jì)課程里面,可以介紹嵌入式GUI的設(shè)計(jì),F(xiàn)PGA可以在相關(guān)硬件課程中完成。微機(jī)原理課程也可以涉獵部分嵌入式課程的內(nèi)容,例如工業(yè)控制、嵌入式系統(tǒng)擴(kuò)展等,對于微機(jī)原理課程的改革,也是嵌入式中心正在進(jìn)行的工作之一,希望將實(shí)驗(yàn)設(shè)備更新到奔騰M處理器,增加FPGA,實(shí)現(xiàn)原來微機(jī)原理的實(shí)驗(yàn),并完成嵌入式的實(shí)驗(yàn)。
由于課程的概論性質(zhì),而嵌入式系統(tǒng)的紛繁復(fù)雜,使得理論課不能把所有知識講透講深,所以本課程網(wǎng)站(embedded.zju.edu.cn)提供相關(guān)的課件、實(shí)驗(yàn)資料、培訓(xùn)材料的下載,為學(xué)生們提供了自學(xué)的素材,在一定程度上補(bǔ)充了理論課程的不足。
經(jīng)過實(shí)踐,嵌入式系統(tǒng)概論課程可以有效加快學(xué)生對嵌入式系統(tǒng)的認(rèn)識,迅速對嵌入式系統(tǒng)有完整的知識準(zhǔn)備,而不是只會(huì)一個(gè)特定的嵌入式系統(tǒng)。作為概論課程,我們有意淡化了實(shí)驗(yàn)平臺對理論課程的影響,脫離了“嵌入式=ARM+Linux”的誤區(qū),為學(xué)生后續(xù)的相關(guān)課程學(xué)習(xí)打好了基礎(chǔ)。