油海東
青島農業大學理學與信息學院 山東青島 266109
基于ARM-Linux的嵌入式系統開發平臺教學實驗研究
油海東
青島農業大學理學與信息學院 山東青島 266109
對基于ARM-Linux開發平臺的嵌入式系統教學實驗進行了研究,提出了開設實驗的兩種方案并進行了對比分析。在相關實驗的基礎上,提出了一種遠程溫度控制系統。
ARM-Linux;嵌入式系統;實驗教學
Abstract: Teaching experiment research of embedded system development platform based on ARM-Linux has been done. Two experiment schemes are presented and analyzed comparatively. A remote temperature control system is presented based the experiment.
Key words: ARM-Linux; embedded system; experiment teaching
隨著物聯網、云計算等概念的提出,相關產業正在以一股不可阻擋的勢頭迅猛發展,嵌入式技術正是其最核心最關鍵的技術之一。2011年發布的《中國嵌入式開發人員調查報告》[1],對國內的嵌入式行業從嵌入式工程個人情況、嵌入式行業公司的基本情況、嵌入式工程師對職業生涯的看法、嵌入式工程師對參加培訓的看法等幾個方面進行了調查研究,結果表明,嵌入式公司行業分布廣泛,嵌入式工程師具有很高的自我滿意度,而且有相當多的嵌入式工程師是新參加工作的大學畢業生。嵌入式行業不僅可以吸收大量的大學畢業生,而且從事嵌入式行業的開發人員也對自己所從事的行業具有較高的行業幸福感。作為向社會輸送人才的各大高校,也緊跟IT技術發展潮流,面向市場需求,相繼開設了嵌入式系統開發課程,并積極引導學生參加各種形式的嵌入式設計大賽等活動,提高學生的綜合能力,提升學生的培養質量,增強學生的就業競爭力。
從多年的嵌入式系統開發教學效果來看,該課程入門難、上手慢、實踐性強,需要綜合知識面廣。要掌握嵌入式系統開發技術,需要大量的實踐練習,因此,實驗教學是非常重要的一環。
嵌入式系統開發平臺有多種類型[2],我校使用的平臺可以選用S3C44B0或S3C2410處理器。由于S3C44B0不支持MMU功能,因此如果選用S3C44B0作為處理器,相應的嵌入式操作系統則應選擇uClinux;如果選擇S3C2410處理器,則應選用Linux作為嵌入式操作系統來搭配使用。由于S3C44B0+uClinux平臺功能相對簡單,因此本文所涉及的實驗全部基于S3C2410+Linux平臺。
嵌入式系統開發平臺結構框圖如圖1所示。使用CPU擴展接口,可以更換使用S3C44B0或S3C2410處理器。該平臺提供的硬件資源豐富,包括64 M SDRAM,4 M Nor Flash,32 M Nand Flash,標配320×240 CSTN 5.7英寸LCD,多個LED指示燈,8個8段數碼管,8路10BIT的ADC,提供觸摸屏接口電路,5×4鍵盤,直流電機,步進電機模塊,具有采用擴展子板形式的GPRS模塊電路和GPS模塊電路等,同時,該平臺也提供了豐富的接口,包括10 M以太網接口,USB接口電路,2個RS232串行口,IIS音頻信號接口,2個CAN接口,1個IDE硬盤接口,1個PCI擴展插槽和1個PS2接口,CF存儲卡接口,SD卡接口等。同時,開發平臺還提供JTAG接口,支持JTAG仿真技術,支持ADS,STD和IDE等集成開發環境。基于豐富的硬件資源和接口,可以開設各種類型的嵌入式實驗。

圖1 嵌入式系統開發平臺
要想在嵌入式開發平臺上運行Linux操作系統,首先要把Linux裁剪、壓縮,去掉一些使用不到的功能,以便符合硬件平臺的要求。然后移植BootLoader,BootLoader是一段負責引導Linux操作系統啟動的程序,在嵌入式系統開發中具有重要的作用。BootLoader一般分為兩段,第一段一般采用ARM匯編程序編寫,主要負責硬件初始化、設置堆棧等工作,然后跳轉到第二段程序入口點;第二段程序一般采用C語言編寫,主要負責檢測系統內存映射,將壓縮的Linux Kernel映像文件從Flash拷貝到RAM并解壓,為Linux Kernel內核設置啟動參數,最后調用內核,完成Linux啟動。BootLoader有很多種,如VIVI,UBOOT,ARMBOOT,BLOB等,我們采用VIVI作為開發平臺的BootLoader。
嵌入式系統開發采用交叉編譯模式,所謂交叉編譯模式是指在主機上進行程序的編寫、編譯、調制,而在開發平臺上運行的模式。交叉編譯模式如圖2所示。主機上安裝編譯工具對源程序進行交叉編譯,生成的可執行程序,通過主機和目標板之間的JTAG接口、串口、Ethernet接口或者USB接口下載到目標板,然后啟動執行。

圖2 交叉編譯模式
嵌入式開發平臺具有豐富的硬件資源和接口電路,因此可開設的實驗非常豐富,形式多種多樣[3,4],在文獻[3][4]中列舉出的實驗共計48個,面對數量如此多的實驗,在教學課時、教學設備有限的條件下,不可能一一開設,因此如何選擇實驗,以便讓學生能夠快速有效地掌握嵌入式系統開發技術是非常重要的問題。基于循序漸進、由簡單到復雜的原則,同時兼顧初學者的接受能力,我們提出兩種嵌入式實驗的開設順序,實踐表明,這兩種方案都具有很好的實驗教學效果。
2.1 第一種方案
第一方案所開設的實驗分為三大部分:第一部分為ARM相關的基礎實驗(6個);第二部分為與Linux相關的實驗(7個);第三部分為綜合應用實驗(1個)。共計14個實驗(見表1)。

表1 第一種方案開設的實驗

14 遠程溫度控制系統設計 √溫度傳感器使用通用I/O采集溫度數據,如果高于設定值,則一方面通過CGI程序以文件的形式保存在本地,另一方面通過開發板上的GPRS模塊,通過移動通信網絡發送到指定手機
我們把開設的實驗分成了基礎、綜合和應用三個級別。在第一種方案中,基礎實驗為8個,綜合實驗為5個,應用實驗為1個,符合寬基礎的教學要求。通過大量的基礎實驗訓練,使學生掌握嵌入式開發的基本技術之后,再通過綜合型和應用型的訓練,提高使用嵌入式技術解決問題的能力。
2.2 第二種方案
第二種方案所開設的實驗也分為三大部分,其中第一部分為ARM基礎實驗(4個);第二部分為Linux相關實驗(7個);第三部分為綜合應用型實驗(1個),共計12個實驗,第二種方案所開設的12個實驗見表2。

表2 第二種方案開設的實驗
比較方案一和方案二開設的實驗,可以看出,兩種方案有所側重。其中方案一比較注重基礎,方案一提供的基礎實驗共8個,同時偏重對整個嵌入式系統的整體了解,方案一中的實驗8,10,11都是了解整個嵌入式系統架構所必須開設的。而方案二更加注重應用,從實驗5到實驗11,都是嵌入式應用程序的開發實驗。通過實行不同的方案,既可以對整個嵌入式系統開發架構有所了解,同時也能夠從事實用的嵌入式應用開發,多年的教學效果表明,采用這樣的實驗方案,取得了很好的教學效果。
以方案一和方案二中的應用型實驗“遠程溫度控制系統設計”為基礎,我們設計了一種遠程溫度控制系統,參加了2010年“博創杯全國嵌入式設計大賽”,獲得了山東省二等獎。該溫控系統的結構圖如圖3所示。

圖3 遠程溫度控制系統
該遠程溫度控制系統主要包括溫度傳感器、嵌入式開發平臺和主機。溫度傳感器使用通用I/O端口與開發平臺連接,GRPS模塊使用串口與開發平臺連接,主機使用串口與開發平臺連接,用來調試、下載程序。溫度傳感器檢測的溫度數值通過通用I/O端口發送給開發平臺上的接收程序,程序接收溫度數值后判斷是否大于或者小于某個設定值,如果大于或者小于設定值,則通過GPRS模塊發送到遠程手機,同時,對于傳感器每次發送過來的溫度數值,都以文件的形式保存在本地,嵌入式開發平臺上部署了嵌入式Web服務器和CGI程序,這樣在主機就可以通過Ethernet接口來訪問以文件形式保存在開發板上的溫度值。在該方案中,我們基于方案一中的實驗11,開發了通用I/O端口驅動程序;基于方案一的實驗11和方案二的實驗11,開發了嵌入式Web服務器及CGI程序;基于方案二的實驗8,開發了GRPS模塊和開發平臺的串口通信程序;基于方案二的實驗6和7開發了相關的應用程序。通過該系統的實施過程和最后的得獎情況來看,我們所提出的嵌入式開發平臺教學實驗的方案一和方案二是合理可行的,對于提高學生嵌入式系統開發技術水平,提高就業競爭力具有很好的作用。
嵌入式系統開發平臺及其教學實驗方案,是針對目前高校嵌入式系統開發課程的實驗教學實際而提出的。方案一側重宏觀整體掌握嵌入式系統開發架構,方案二則注重嵌入式應用,并且基于方案一和方案二所開設的實驗,設計了一種遠程溫度控制系統,并獲得了“博創杯全國大學生嵌入式設計大賽”山東賽區二等獎。結果表明,該實驗方案科學合理,能夠滿足不同層次學生的需求,對高校嵌入式系統開發實驗課具有較好的指導意義。
[1] 中國嵌入式開發從業人員調查報[EB/OL].http://www.farsight. com.cn/subject/report2010-2011.htm.[2011-05-03]
[2] 朱麗霞.基于ARM-Linux的嵌入式實驗教學平臺構建[J].中國現代教育裝備,2010,23:42-43.
[3] 深圳英蓓特公司.EudkitIII S3C2410實驗教程[Z].2008
[4] 深圳英蓓特公司.EudkitIII S3C2410 Linux實驗教程[Z].2008.
Teaching experiment research of embedded system development platform based on ARM-Linux
You Haidong
Qingdao agricultural university, Qingdao, 266109, China
2011-12-24
油海東,在讀博士研究生,講師。