王志軍 楊延軍 段曉輝 趙建業 張云峰
“嵌入式系統”課程是“北京大學電子信息科學基礎實驗中心”為信息科學技術學院電子類高年級本科生和研究生新開設的一門以實驗為主的選修課,目的是通過對嵌入式系統組成原理的學習和專題實驗、項目實驗的訓練,培養學生的綜合創新能力。
“嵌入式系統”實驗課程的建設注重對學生進行科研綜合方法的培養,包括需求分析、方案論證、資料搜集、系統設計、電路調試、系統測試、報告撰寫等。除了培養學生的分析問題、解決問題的能力外,還要引導學生發揮想象力,提出問題或見解,即培養創新能力。對于沒有學過的或跨學科的知識,引導學生學會主動學習、理解,最終應用于系統中去。
“嵌入式系統”課程介紹
1.學時學分
總課時:60學時(理論課:16學時,實驗課:44學時);學分:2學分。
2.課程內容
(1)理論課
共授課8次,每次2學時,共需4周時間。具體內容如下:
* 嵌入式系統概述
* ARM體系結構與嵌入式CPU
* 嵌入式系統平臺——SitSang Board
* 嵌入式Linux操作系統原理
* 嵌入式Linux軟件開發
* 嵌入式Linux圖形程序設計
* 嵌入式Linux驅動程序設計
* 嵌入式應用系統設計開發
通過上述理論課的學習,使學生基本掌握嵌入式系統的基本理論和嵌入式系統的開發過程,以及Intel SitSang開發平臺的組成、嵌入式Linux操作系統的開發原理,為下一步的實驗課程打下基礎。
(2)實驗課
實驗課分為兩個階段,專題實驗和項目實驗。專題實驗共有6次,每次4學時,共24學時(6周)。專題實驗具體內容如下:
實驗一 SitSang Board組成和原理
實驗二 ARM匯編程序設計
實驗三 嵌入式Linux內核
實驗四 嵌入式Linux程序設計
實驗五 嵌入式Linux圖形程序設計
實驗六 嵌入式Linux驅動程序設計
在專題實驗中,學生自由組隊三人一組,每次實驗又分為驗證性實驗、修改性實驗和設計性實驗三個層次。硬件開發平臺采用Intel SitSang(PXA255)板。第一個實驗用來熟悉開發平臺的硬件,第二個實驗用來了解比較底層的ARM匯編程序的開發方法,其他四個實驗都是圍繞 Linux操作系統來進行的。
嵌入式Linux操作系統內核——zImage采用的是經過Intel公司修改的2.4.19版本;嵌入式文件系統采用的是JFFS2,它是專門為Flash設備設計的文件系統;為了避免頻繁的Flash讀寫和節省將文件系統燒錄到Flash中的時間,在實驗中我們主要采用網絡文件系統(NFS),它使目標系統在運行的時候通過網絡在主機上得到文件系統的內容,而不需要訪問Flash設備,大大提高了開發效率;圖形開發選擇qtopia-1.7.0作為軟件平臺,開發工具主要使用qt-embedded-2.3.7;驅動程序的設計主要涉及了加速度計、測試LED和面板按鈕,希望學生對驅動有初步的了解,在專題實驗中并沒有設計很復雜的驅動。
項目實驗仍為三人一組,共20學時,需5周時間。實際操作上,項目實驗被安排在開放實驗室,學生可以自由安排其實驗時間,每個學生實際花費的時間遠遠多于20學時。項目實驗的命題由教師推薦和學生自選,這樣可以調動學生的創造潛能,達到培養學生綜合創新能力的目的。推薦的項目實驗題目如下:
* MP3播放器
* 簡單PDA(記事本、通信錄、備忘錄等)
* 簡單E-mail編輯、收發器
* 簡單游戲(游戲桿控制)
在項目實驗的管理中,每個實驗教師負責幾組學生,每周至少一次對學生進行檢查、督導。同時,設有兩個檢查時間點:一個是項目實驗開始的一周后,要求學生提供一份書面的項目方案設計報告,包括需求分析、方案論證、系統功能、資源分配、任務分工及任務時間表等;另一個檢查點為項目實驗結束時的答辯驗收,每組答辯時間為15分鐘,包括項目系統演示5分鐘,PPT講演5分鐘和提問5分鐘,屆時應準備好:項目實驗報告、PPT講演稿和項目演示系統。
(3)成績評定
專題實驗:40分(實驗表現:20,實驗報告:20);
項目實驗:60分(系統演示:30,實驗報告:20,答辯:10)。
(4)參考教材
[1] 嵌入式系統實驗講義.北京大學信息科學技術學院內部教材.
[2] 陳章龍等譯.嵌入式技術與系統- Intel Xscale 結構與開發[M].北京航空航天大學出版社,2004.
[3] 王勇等譯.GNU/Linux 編程指南[M].北京:清華大學出版社,2000.
[4] 田澤等譯.ARM SoC體系結構[M].北京航空航天大學出版社,2002.
“嵌入式系統”課程教學效果
通過理論課的學習,學生基本掌握了嵌入式系統的組成和基本原理、ARM體系結構、嵌入式操作系統的基本原理,以及嵌入式系統的開發過程等。
通過實驗課的訓練,學生不僅提高了實驗技能,更重要的是提高了綜合創新能力。實驗中學生被分為三人一組,這使得學生學到了任務劃分和相互合作,培養了學生的團隊精神;課程內容具有一定的深度,很多知識點學生都是第一次接觸,這使得學生學會了主動學習、廣泛搜集資料,綜合能力得到訓練;碰到問題,學生敢于面對,并積極努力去解決,培養了學生的頑強拼搏精神;項目實驗中,學生開動腦筋,完成了很多他們感興趣的題目,并力求將項目做得完美,這些培養了學生的創新能力;項目實驗最后的答辯驗收,則訓練了學生講演、快速反應和推銷自己的能力。
以下是學生完成的、具有代表性的項目實驗題目:
* 便攜式MP3播放器
* 便攜式MPEG4播放器(使用了Intel IPP庫)
* 便攜式E-mail收發終端
* 便攜式旅游信息終端
* 基于Linux的PDA的設計與實現
* 基于Linux的可視電話的設計與實現
課程的進一步改進
通過“嵌入式系統”課程對兩屆學生的開設,我們積累了一些經驗,同時也存在著一些需要繼續改進的方面。從學生的反饋上看,該課程對于四年級的本科生來說,涉及的知識面廣、內容偏深:既要求學生有硬件電路知識,又要有計算機體系結構、操作系統等方面的知識,還要熟悉編程語言及應用系統組成。在有限的學時內,學生們很難完全掌握和消化,往往占用了他們很多的課余時間。因此,如何在有限的學時內,讓學生基本掌握嵌入式系統的基本知識,培養他們的綜合創新能力,是課程進一步改進的重點。
(1)進一步系統化理論課程內容
目前,理論課由幾位教師分別以講座的形式向學生授課。在課程內容上,雖然大體上有重點劃分,但仍需要進一步統籌規劃、突出重點。重點講授需要學生掌握的基本知識,而不是面面俱到,進一步的提高可由學生憑個人興趣自學完成。另外,課程內容中多增加一些實例,以幫助學生理解和消化。
(2)加快理論課教材建設
嵌入式系統涉及的知識面廣,參考資料也非常多,泛泛地為學生指定幾本參考書,這使得學生無時間遍覽,也很難抓住重點。嵌入式系統課程的進一步建設,應該根據該課程的目標和內容的需要,編寫一本理論課教材。這樣既可以幫助學生掌握嵌入式系統的基本知識,又節省了學生的時間。這項工作目前正在進行中。
(3)增加演示項目實驗
對于專題實驗,學生可以按照實驗講義一步步地完成。但到了項目實驗階段,學生普遍感覺跨度較大,往往無從下手,需要教師多次的引導和幫助。這是因為學生習慣于單元實驗,而缺少系統實驗的訓練。為了幫助學生項目實驗能迅速上手,我們的嵌入式系統課程準備在專題實驗結束后,增加一個演示項目實驗。在項目的方案設計、理論推導、系統功能、性能測試等方面為學生提供一個完整的實例,相信一定會對學生有所幫助。
“嵌入式系統”課程的建設,適應了當代電子信息科學技術領域對專業技術人才的要求,為高年級本科生及研究生提供了一個較好的高端選修課。四年的開課實踐證明:本課程較全面地訓練了學生們的綜合創新能力,受到了學生們的歡迎。