陳天洲
嵌入式系統是近年來發展很快的計算機方面的學科,并迅速滲透到控制、自動化、儀器儀表等學科。浙江大學從2002年開設嵌入式課程以來,一直關注嵌入式系統領域的課程開發與建設,收集了國內外相關專業的嵌入式課程教學資料,總結并提高課程對嵌入式系統快速發展的適應性。在英特爾公司的支持下,嵌入式中心從2003年以來嵌入式舉辦了多次嵌入式課程研討班,與國內各高校多次探討了嵌入式課程的知識點與課程安排,并與CMU一同開發嵌入式課程資料。
嵌入式方向包括軟硬件協同設計、嵌入式體系結構、實時操作系統、嵌入式產品設計等方面的知識,需要掌握嵌入式系統設計的典型開發工具,培訓學生具備嵌入式系統軟、硬件的開發能力,對于特定行業領域(例如移動終端、數字家庭、信息家電以及對傳統產業信息化改造)已經逐步形成了特定的嵌入式開發方法與手段。
隨著軟硬件技術快速發展,嵌入式系統不再是一門課程就可以介紹清晰,而逐步成為一個課程群,該方向的專業課程可劃分為:嵌入式系統原理、嵌入式操作系統、實時系統、嵌入式軟件設計、軟硬件協同設計、嵌入式系統軟件工程、嵌入式系統中間件、數字信號處理等。一些學校還開設了微機外圍電路應用設計、單片機編程、ARM等課程。
我們收集并分析了國內部分高校在嵌入式課程上的教學大綱,以此為基礎設置了我們的嵌入式系統概論課程。表1是我們收集的大學名稱、課程名稱、學時數與知識點,這些課程基本上是基于Intel的XScale實驗板設計的,對我們設計“嵌入式系統概論”有借鑒作用。

綜合上述高校的嵌入式課程,有些是針對計算機專業開設的,有些是針對其他專業的,有本科期間開設的,也有碩士期間開設的,一些高校開設了多門嵌入式方向大課程。我們設計的“嵌入式系統概論”是針對本科階段開設的嵌入式方向入門課程,主要面向大三的本科生,其課程結構如圖1所示,其前修課程一般是計算機組成、微機原理、接口、匯編、操作系統、程序設計語言、體系結構。部分后續課程開設在研究生階段。
嵌入式系統概論課程的目的,是綜合前修計算機專業課程,以及包括數字電路等更基礎的知識,開拓學生對嵌入式的視野,為后續課程奠定基礎。因此在嵌入式課程中不會介紹匯編語言設計、接口電路的設計等知識。

我們認為,該課程理論部分的知識點分布基本上如圖2所示,主要分為四大模塊,分別是嵌入式概念、嵌入式體系、嵌入式系統軟件、嵌入式軟件開發。實驗部分由于各學校實驗材料的差異,較難對比,我們的使用設備主要是30套Intel XScale與30套Motorola Dragonball。

對于嵌入式體系結構,首先介紹各種嵌入式體系結構、處理器、DSP。
由于ARM體系是目前嵌入式系統工業界事實上的標準,一般都以ARM體系為例介紹嵌入式體系結構,并介紹ARM匯編。由于上課學生已經學習了匯編語言,所以需要簡單介紹ARM匯編與微機匯編的差異與特點,要求學生以自學為主,作業為輔,可以較快地掌握該匯編。浙江大學計算機專業本科生階段在計算機組成課程中還學習了MIPS匯編,所以學生們對ARM匯編掌握起來就更快一些。
在嵌入式體系的具體實例介紹中,我們結合本課程的實驗平臺簡要介紹XScale體系,這部分主要也是自學為主,結合實驗環節讓學生掌握看硬件資料的能力。
在嵌入式體系結構部分,還需要介紹嵌入式系統的硬件系統,包括JTAG接口、外設、中斷、總線等。通過這部分的介紹,學生們可以了解嵌入式硬件系統的構成與軟硬件接口。
嵌入式系統軟件就是嵌入式操作系統。嵌入式操作系統包括非實時嵌入式操作系統與實時嵌入式操作系統(RTOS),在嵌入式課程中主要介紹RTOS。在系統軟件模塊中將介紹實時系統概念、操作系統在嵌入式系統領域的改造,例如處理器調度的實時性改造、中斷處理、文件系統、MMU等。嵌入式系統概論課程主要介紹常見的各種嵌入式操作系統,包括它們的特點、應用領域,并以嵌入式Linux為例子,介紹Linux的改造、裁減與移植。
最后一個模塊是嵌入式軟件開發,是介紹嵌入式軟件開發的過程,使得整門課程最終能夠形成一個完備的嵌入式開發體系。Bootloader的設計,也可放在操作系統移植中進行介紹。嵌入式圖形用戶界面目前沒有統一的標準,作為概論課程需要介紹各個嵌入式GUI的優缺點與適用范圍。同樣,課程介紹包括Tornado、CE.net等嵌入式開發環境,以及嵌入式中間件。課程最后將以實例來介紹嵌入式系統的開發流程。
作為后續課程,我們認為一些專題性質的開發工具,例如Wince.net開發、Symbian開發、BREW開發等,可以利用浙江大學暑假短學期為期兩周的課程實踐來完成。而實時系統可以單獨開設研究生層次的課程,面向領域的嵌入式系統設計可以開設相關的專題班進行討論。部分嵌入式軟件開發的知識點,可以交給其他課程完成,例如人機交互設計課程里面,可以介紹嵌入式GUI的設計,FPGA可以在相關硬件課程中完成。微機原理課程也可以涉獵部分嵌入式課程的內容,例如工業控制、嵌入式系統擴展等,對于微機原理課程的改革,也是嵌入式中心正在進行的工作之一,希望將實驗設備更新到奔騰M處理器,增加FPGA,實現原來微機原理的實驗,并完成嵌入式的實驗。
由于課程的概論性質,而嵌入式系統的紛繁復雜,使得理論課不能把所有知識講透講深,所以本課程網站(embedded.zju.edu.cn)提供相關的課件、實驗資料、培訓材料的下載,為學生們提供了自學的素材,在一定程度上補充了理論課程的不足。
經過實踐,嵌入式系統概論課程可以有效加快學生對嵌入式系統的認識,迅速對嵌入式系統有完整的知識準備,而不是只會一個特定的嵌入式系統。作為概論課程,我們有意淡化了實驗平臺對理論課程的影響,脫離了“嵌入式=ARM+Linux”的誤區,為學生后續的相關課程學習打好了基礎。