(西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710129)
摘 要:分析嵌入式系統(tǒng)知識(shí)體系特點(diǎn)與內(nèi)涵,闡述從架構(gòu)、原理至設(shè)計(jì)的知識(shí)體系的構(gòu)建思路,探討重構(gòu)嵌入式系統(tǒng)課程教學(xué)內(nèi)容的具體方法,提出一種多維融合的新的知識(shí)體系和教學(xué)模式。
關(guān)鍵詞:嵌入式系統(tǒng);知識(shí)體系;多維融合;共性模型;教學(xué)模式
1 背 景
嵌入式系統(tǒng)技術(shù)的發(fā)展已開始邁入微型化、信息物理融合以及智能化的時(shí)代,是物聯(lián)網(wǎng)、智能制造等眾多領(lǐng)域進(jìn)行技術(shù)變革和跨越式發(fā)展的重要支撐。深入、全面地學(xué)習(xí)嵌入式計(jì)算機(jī)系統(tǒng)知識(shí)是進(jìn)入嵌入式系統(tǒng)領(lǐng)域的首要步驟,也是進(jìn)一步開展具體領(lǐng)域嵌入式系統(tǒng)設(shè)計(jì)的技術(shù)基礎(chǔ)[1-4]。
嵌入式系統(tǒng)具有完整、龐大的獨(dú)特知識(shí)體系,該課程的內(nèi)容體系組織和教學(xué)方法在近年來已被廣泛地討論和研究[1,4]。隨著知識(shí)體系的不斷演化,如何有效地梳理相關(guān)知識(shí)點(diǎn)以構(gòu)建完整的知識(shí)框架,如何在不失一般性的前提下突出每個(gè)知識(shí)點(diǎn)的嵌入式特性,如何穿透每一個(gè)知識(shí)點(diǎn)的內(nèi)外部機(jī)理并實(shí)現(xiàn)不同知識(shí)點(diǎn)的融會(huì)貫通,以及如何實(shí)現(xiàn)從理論學(xué)習(xí)到實(shí)踐能力轉(zhuǎn)化等,都已經(jīng)成為嵌入式系統(tǒng)課程教學(xué)改革中亟待重新考慮的問題。與此同時(shí),專業(yè)課學(xué)習(xí)的目的不應(yīng)僅停留在掌握知識(shí)內(nèi)容本身,還應(yīng)致力于知識(shí)體系的完善、對(duì)優(yōu)秀思想的借鑒、思維方式的培養(yǎng)以及綜合能力的提升。為此,在前期教學(xué)研究的基礎(chǔ)上[2],筆者結(jié)合多年來對(duì)“嵌入式系統(tǒng)”課程教學(xué)的探索、教材編著以及承擔(dān)的教學(xué)改革工作,總結(jié)、探討了“從架構(gòu)、原理到設(shè)計(jì),從共性模型到具體實(shí)現(xiàn)、從宏觀特性到微觀原理、從硬件邏輯到軟件機(jī)制等”的多維融合知識(shí)體系構(gòu)建方法和課程教學(xué)模式。
2 知識(shí)體系特點(diǎn)分析
2.1 知識(shí)高度綜合且又“大象無形”
嵌入式系統(tǒng)以計(jì)算機(jī)技術(shù)為基礎(chǔ),其知識(shí)體系具有高度綜合、知識(shí)與技術(shù)密集等特征。不同于內(nèi)容具體的專業(yè)課程,嵌入式系統(tǒng)的知識(shí)體系并不是單一的、具體的,而是蘊(yùn)含于形形色色的嵌入式系統(tǒng)中,大象無形。究其原因,不論是處理器子系統(tǒng)、存儲(chǔ)子系統(tǒng)等硬件的架構(gòu)、接口和類型,還是所采用嵌入式操作系統(tǒng)、軟件架構(gòu)、編程語言及開發(fā)方式等,都具有豐富多樣的形式。圍繞特定軟硬件所構(gòu)建的知識(shí)體系強(qiáng)調(diào)了該類軟硬件的具體設(shè)計(jì)、外部功能和特性,不具備代表性,也不利于學(xué)習(xí)者全面、深刻地進(jìn)行學(xué)習(xí)。為此,在重構(gòu)課程內(nèi)容時(shí)就需要突出共性和系統(tǒng)性,既能以共性歸納和模型抽象的方式來討論知識(shí)原理,又能以多維角度進(jìn)行理論、原理、設(shè)計(jì)的有機(jī)融合。
2.2 “嵌入式”特性不斷演化和豐富
嵌入式系統(tǒng)是一種特殊的計(jì)算機(jī)系統(tǒng),它在計(jì)算結(jié)構(gòu)上與通用計(jì)算機(jī)相似,但又存在差異。嵌入式系統(tǒng)的差異性主要體現(xiàn)在面向具體應(yīng)用、軟硬件可定制、資源相對(duì)受限等,同時(shí)在計(jì)算性能、可靠性、體積、重量、功耗等方面具有特殊要求,這使得嵌入式系統(tǒng)的軟、硬件都呈現(xiàn)出豐富的“嵌入式”內(nèi)涵。
2.2.1 硬件體系與設(shè)計(jì)
處理器子系統(tǒng)是嵌入式系統(tǒng)的核心,可以基于MPU、MCU、DSP或So(P)C等不同的嵌入式處理單元設(shè)計(jì)。其中,除了MPU與通用處理器較為相似、通用性較強(qiáng)以外,其他處理器的微架構(gòu)、指令集、片內(nèi)資源等均各具特色,要獨(dú)立且又對(duì)照地分析和討論。嵌入式存儲(chǔ)子系統(tǒng)在數(shù)據(jù)管理方面大都具有特殊性,其分級(jí)的存儲(chǔ)子系統(tǒng)體系一般由處理器的片內(nèi)、片外存儲(chǔ)資源構(gòu)成,并涵蓋RAM、ROM、FIFO以及NVRAM等多種存儲(chǔ)器類型,實(shí)現(xiàn)形式豐富。另外,隨著新型混合存儲(chǔ)器的應(yīng)用,存儲(chǔ)子系統(tǒng)的組成也開始朝著簡約化的方向發(fā)展,這也進(jìn)一步影響著嵌入式軟件架構(gòu)、啟動(dòng)過程和資源管理等機(jī)制的設(shè)計(jì)。除此之外,嵌入式系統(tǒng)所使用的內(nèi)部、外部總線以及形形色色的I/O接口等也都有其獨(dú)特性。顯然,課堂上首先需要對(duì)嵌入式系統(tǒng)的這些特性進(jìn)行深入討論。
2.2.2 軟件架構(gòu)與機(jī)制
在通用軟件體系中,軟件基于操作系統(tǒng)運(yùn)行,軟件設(shè)計(jì)者無需關(guān)注系統(tǒng)底層的軟硬件細(xì)節(jié)。然而在嵌入式系統(tǒng)領(lǐng)域,軟件設(shè)計(jì)一方面需要關(guān)注軟件的體系架構(gòu)、啟動(dòng)與引導(dǎo)方式、代碼和數(shù)據(jù)的存儲(chǔ)機(jī)制、軟件的分區(qū)運(yùn)行、特定I/O接口的驅(qū)動(dòng)等系統(tǒng)層面的內(nèi)容;另一方面,由于應(yīng)用軟件的算法和邏輯大都和系統(tǒng)層軟硬件存在密切的交互,因此不同層軟件的開發(fā)者需要熟悉或在不同程度掌握系統(tǒng)軟硬件的知識(shí),如BSP的開發(fā)者要熟悉硬件總體設(shè)計(jì)、機(jī)制以及嵌入式操作系統(tǒng)的基本屬性與交互接口,驅(qū)動(dòng)軟件開發(fā)者需要熟悉具體硬件的邏輯、資源及特定的驅(qū)動(dòng)程序設(shè)計(jì)方法等。
嵌入式軟件設(shè)計(jì)結(jié)構(gòu)被基本地劃分為基于裸機(jī)的軟件和基于嵌入式操作系統(tǒng)的軟件。隨著多核高性能硬件、網(wǎng)絡(luò)組件、智能硬件以及實(shí)時(shí)、可靠等應(yīng)用需求的發(fā)展,嵌入式軟件的體系結(jié)構(gòu)不斷演化,逐步形成了網(wǎng)絡(luò)化軟件架構(gòu)、基于嵌入式中間件的軟件架構(gòu)以及基于虛擬機(jī)管理程序的嵌入式軟件結(jié)構(gòu)等。與此同時(shí),軟硬件緊密耦合使得嵌入式軟件的機(jī)制更為靈活,設(shè)計(jì)者可通過拓展軟件邏輯來彌補(bǔ)硬件的缺陷或優(yōu)化系統(tǒng)性能。例如,可以通過在嵌入式文件系統(tǒng)中部署磨損均衡等機(jī)制來提高Flash的使用壽命,在軟件邏輯中增加濾波邏輯來消除硬件中可能無法避免的抖動(dòng)及毛刺信號(hào),又或者在軟件中通過智能的軟件判斷來消除錯(cuò)誤或降低系統(tǒng)功耗等。嵌入式軟件體系的諸多演化將使得嵌入式軟件組件以及軟件的設(shè)計(jì)方法也將隨之發(fā)生改變,相關(guān)知識(shí)需要不斷更新。
2.2.3 設(shè)計(jì)與開發(fā)方法
嵌入式系統(tǒng)的設(shè)計(jì)首先要考慮軟硬件界面的劃分,是一個(gè)軟硬件協(xié)同的規(guī)劃和設(shè)計(jì)過程,而嵌入式硬件和軟件的設(shè)計(jì)方法各有不同且又密切聯(lián)系。嵌入式硬件設(shè)計(jì)的內(nèi)容主要取決于體系結(jié)構(gòu)、數(shù)字電路設(shè)計(jì)等先修課程,而并非自成一體。其共性基礎(chǔ)是數(shù)字電路設(shè)計(jì)技術(shù),在具體系統(tǒng)設(shè)計(jì)中還可能會(huì)使用到模擬電路、高頻電路、電磁兼容、低功耗等設(shè)計(jì)技術(shù)。嵌入式軟件的設(shè)計(jì)具有相對(duì)獨(dú)立性和完整性,開發(fā)過程一般包括交叉編譯、遠(yuǎn)程調(diào)試、交叉編譯以及Monitor代理、JTAG調(diào)試接口等相關(guān)的軟硬件原理和機(jī)制,設(shè)計(jì)方法也不斷演化和豐富。另外,隨著傳統(tǒng)軟件工程方法日益受到挑戰(zhàn),模型驅(qū)動(dòng)開發(fā)(MDD)等新的嵌入式軟件設(shè)計(jì)方法不斷發(fā)展,并在近年來被越來越多地關(guān)注和應(yīng)用。這些都應(yīng)該是新型嵌入式系統(tǒng)知識(shí)體系的組成部分。
嵌入式系統(tǒng)的功能和性能驗(yàn)證具有軟硬件融合特性以及運(yùn)行時(shí)特性。“軟硬件融合”意味著軟件功能只有通過在目標(biāo)硬件上的一體化調(diào)試、測試和驗(yàn)證才能證明其正確性;“運(yùn)行時(shí)”特性則表示調(diào)試、測試等驗(yàn)證操作不應(yīng)對(duì)系統(tǒng)的正常運(yùn)行過程造成干擾。這在使用了中斷機(jī)制或具有實(shí)時(shí)性約束的嵌入式系統(tǒng)中尤其突出。另外,對(duì)于信息物理系統(tǒng)還可能需要進(jìn)行基于場景的仿真驗(yàn)證。
綜上所述,只有在不斷完善和清晰梳理知識(shí)脈絡(luò)的基礎(chǔ)上,突出各個(gè)知識(shí)點(diǎn)的嵌入式特性與原理,并以系統(tǒng)化的方式來綜合分析這些知識(shí)點(diǎn)之間的內(nèi)在關(guān)聯(lián),才能構(gòu)建出一個(gè)立體的、多維融合的知識(shí)體系。
3 構(gòu)建多維度的立體知識(shí)體系
采用多維度的方式來構(gòu)建立體的嵌入式系統(tǒng)知識(shí)體系,將有效地穿透各個(gè)知識(shí)點(diǎn),結(jié)合材料、物理等基礎(chǔ)知識(shí),促進(jìn)整個(gè)知識(shí)體系的融會(huì)貫通。這既有助于學(xué)習(xí)者系統(tǒng)、深入地掌握相關(guān)原理和機(jī)制,也能訓(xùn)練學(xué)生從多個(gè)視角分析問題的綜合能力和多維度思維。
3.1 基于計(jì)算機(jī)技術(shù)脈絡(luò)梳理知識(shí)結(jié)構(gòu)
拋開具體的應(yīng)用功能,各類嵌入式系統(tǒng)本質(zhì)上首先是各種各樣的以數(shù)字處理單元為核心的計(jì)算裝置,具有多樣、完整的計(jì)算架構(gòu)。因此,在梳理嵌入式系統(tǒng)知識(shí)架構(gòu)的基礎(chǔ)上,根據(jù)上述諸多“嵌入式”特性對(duì)知識(shí)點(diǎn)進(jìn)行擴(kuò)展、深化和完善才可以構(gòu)造出符合嵌入式系統(tǒng)技術(shù)特征的知識(shí)體系。經(jīng)過多年的教學(xué)探索和總結(jié),我們提出如圖1所示的“嵌入式系統(tǒng)”課程知識(shí)體系框架[5]。
圖1中,緒論部分以討論嵌入式系統(tǒng)的基本概念和內(nèi)涵為主題,從基礎(chǔ)研究、技術(shù)形態(tài)、核心內(nèi)涵及演化歷程等方面分析了嵌入式系統(tǒng)知識(shí)體系的總體結(jié)構(gòu)、組成和特點(diǎn)。第二章梳理了嵌入式硬件相關(guān)的基礎(chǔ)知識(shí),重點(diǎn)是與后續(xù)內(nèi)容密切相關(guān)的電路符號(hào)、器件以及硬件子系統(tǒng)組成、典型硬件形式、硬件設(shè)計(jì)基本方法等。該章內(nèi)容有助于建立起對(duì)硬件的基本認(rèn)識(shí),以及提升初學(xué)者閱讀電路原理圖以及設(shè)計(jì)硬件電路的能力,是開展后續(xù)學(xué)習(xí)的重要基礎(chǔ)。第三、四章分別分析了嵌入式處理器子系統(tǒng)和存儲(chǔ)子系統(tǒng)的架構(gòu)、原理與特性,探討共性原理和個(gè)體特性。之后,圍繞最小計(jì)算系統(tǒng)的設(shè)計(jì)和擴(kuò)展方法,在第五、六章重點(diǎn)闡述電源、復(fù)位、時(shí)鐘等外圍電路以及典型接口與總線的特性、機(jī)理和設(shè)計(jì)方式。至此,嵌入式硬件部分的知識(shí)構(gòu)成已比較完整,以此為基礎(chǔ)可以過渡到嵌入式軟件的相關(guān)內(nèi)容。第七章對(duì)嵌入式軟件的經(jīng)典體系架構(gòu)及衍生結(jié)構(gòu)進(jìn)行總結(jié)和分析,并結(jié)合嵌入式系統(tǒng)的啟動(dòng)過程重點(diǎn)討論Boot Loader、BSP、虛擬機(jī)監(jiān)控程序等基礎(chǔ)軟件組件。第八、九章分別分析和討論嵌入式操作系統(tǒng)共性模型與機(jī)制、具體實(shí)現(xiàn),以及圖形庫、文件系統(tǒng)、數(shù)據(jù)庫等典型的嵌入式軟件組件。第十章以軟件與硬件、宏觀與微觀、系統(tǒng)/工具軟件與應(yīng)用軟件相結(jié)合的維度,以方法與實(shí)例結(jié)合的方式,闡述嵌入式應(yīng)用軟件的基本結(jié)構(gòu)、典型設(shè)計(jì)機(jī)制等內(nèi)容。最后,結(jié)合嵌入式系統(tǒng)的開發(fā)特點(diǎn),對(duì)典型的調(diào)試、測試、仿真等方法進(jìn)行論述,補(bǔ)齊本知識(shí)體系的最后一塊拼圖。
3.2 從共性模型到具體對(duì)象的漸進(jìn)式教學(xué)
針對(duì)上述特點(diǎn)和問題,除第一章之外,筆者在內(nèi)容安排上嘗試了盡可能從各知識(shí)點(diǎn)的共性模型入手,逐步過渡到具體原理和技術(shù),同時(shí)采用了理論與實(shí)例相結(jié)合的內(nèi)容組織方法。
3.2.1 總結(jié)嵌入式系統(tǒng)的硬件形式
緊扣IEEE Std 1003.13?-2003給出的嵌入式系統(tǒng)定義,將嵌入式系統(tǒng)的形式歸納為3種基本形態(tài),即嵌入通用計(jì)算機(jī)型、基于領(lǐng)域標(biāo)準(zhǔn)模塊集成的嵌入式硬件以及面向具體應(yīng)用設(shè)計(jì)的專用嵌入式應(yīng)用。這3種硬件的專用性、設(shè)計(jì)成本、適用性都依次增強(qiáng),集成度、性能等也不斷提升。在歸納這些特性的基礎(chǔ)上,以典型的工業(yè)控制計(jì)算機(jī)、單板計(jì)算機(jī)以及智能手機(jī)嵌入式硬件為具體示例來分析這些不同類型嵌入式系統(tǒng)的硬件架構(gòu)與設(shè)計(jì)特點(diǎn)。
3.2.2 梳理硬件子系統(tǒng)模型和特性
化整為零,以模塊化的方式分解大系統(tǒng),有助于清晰、深入地討論每一個(gè)知識(shí)板塊。嵌入式系統(tǒng)硬件中的處理器子系統(tǒng)、存儲(chǔ)子系統(tǒng)、I/O子系統(tǒng)及時(shí)鐘子系統(tǒng)等各具特點(diǎn),需要采用不同的方式進(jìn)行討論。例如,對(duì)嵌入式子系統(tǒng)的討論要重點(diǎn)圍繞嵌入式處理器展開,進(jìn)而要從處理器的微架構(gòu)、指令集、寄存器資源、I/O、功耗等角度共性地描述不同類型嵌入式處理器的基本模型?;诖?,可以進(jìn)一步將這些模型、機(jī)制映射到ARM、MIPS、PowerPC等典型處理器體系結(jié)構(gòu)以及代表性的處理器芯片實(shí)現(xiàn),分析這些模型、機(jī)制在具體芯片實(shí)現(xiàn)中的設(shè)計(jì)方式及其外部特性。首先應(yīng)討論如何建立存儲(chǔ)子系統(tǒng)的分級(jí)存儲(chǔ)體系以及基于片內(nèi)存儲(chǔ)資源和片內(nèi)、片外存儲(chǔ)資源相結(jié)合的典型存儲(chǔ)結(jié)構(gòu)。之后,可以從嵌入式系統(tǒng)啟動(dòng)、數(shù)據(jù)存儲(chǔ)和訪問特性的角度來分析和討論該子系統(tǒng)的體系與特點(diǎn)。另外,嵌入式系統(tǒng)的I/O是非常多元的,組織內(nèi)容時(shí)應(yīng)該從I/O結(jié)構(gòu)、寄存器等共性機(jī)制著手,而時(shí)鐘子系統(tǒng)的討論則可從單時(shí)鐘電路、多時(shí)鐘電路逐步進(jìn)展到可配置的時(shí)鐘樹機(jī)制等。
3.2.3 歸納嵌入式軟件體系與結(jié)構(gòu)
將嵌入式軟件結(jié)構(gòu)劃分為裸機(jī)軟件和基于嵌入式操作系統(tǒng)的嵌入式軟件是合理的,但這種方式仍然過于簡單。受不同因素的影響,嵌入式軟件體系不斷演化和豐富。例如,考慮軟件的可移植性就形成了可移植的嵌入式軟件結(jié)構(gòu);又如,在整合特定領(lǐng)域共性軟件服務(wù)的基礎(chǔ)上,形成了基于軟件中間件的嵌入式軟件結(jié)構(gòu)等。近年來,隨著多核處理器及嵌入式虛擬化技術(shù)的發(fā)展,具有隔離安全特性的分區(qū)式嵌入式軟件體系也被越來越多地采用,嵌入式軟件設(shè)計(jì)開始朝著分層和分區(qū)的復(fù)雜結(jié)構(gòu)發(fā)展。因此,歸納這些經(jīng)典的、新興的嵌入式應(yīng)用軟件結(jié)構(gòu)也就成為梳理嵌入式軟件體系的重要方面。在嵌入式應(yīng)用軟件設(shè)計(jì)方面,課程內(nèi)容中既要討論輪詢、帶中斷的輪詢等典型軟件結(jié)構(gòu)的原理和特性,也要討論典型的實(shí)現(xiàn)形式,如一次執(zhí)行、無限循環(huán)、中斷等。
3.2.4 提煉EOS內(nèi)核中的共性機(jī)制
操作系統(tǒng)的發(fā)展歷程本身就是一部解決計(jì)算需求和問題的歷史。嵌入式操作系統(tǒng)的發(fā)展也不例外,其源自通用操作系統(tǒng)技術(shù),又密切結(jié)合了嵌入式系統(tǒng)應(yīng)用的需求。類似于嵌入式處理器,嵌入式操作系統(tǒng)的種類豐富多樣,在體系、機(jī)制、功能、性能等方面各具特點(diǎn)。為了便于學(xué)習(xí)者全面地理解、掌握其主要原理和技術(shù),課程內(nèi)容中就應(yīng)該歸納和提煉不同操作系統(tǒng)的共性特征,而不是以某個(gè)具體EOS作為唯一的學(xué)習(xí)對(duì)象。經(jīng)歸納,EOS部分的內(nèi)容主要可歸類為架構(gòu)模型和服務(wù)機(jī)制兩個(gè)主要方面。EOS架構(gòu)模型主要包括微內(nèi)核/超微內(nèi)核架構(gòu)、功能模型、衍生模型及主流的開發(fā)平臺(tái)框架,而服務(wù)機(jī)制則包括內(nèi)核、任務(wù)及任務(wù)狀態(tài)、任務(wù)調(diào)度與管理、中斷與異常、實(shí)時(shí)服務(wù)、任務(wù)間通信與協(xié)同、存儲(chǔ)管理等機(jī)制。在此基礎(chǔ)上,后續(xù)課程內(nèi)容就可以“由簡至繁”地選擇一組典型的嵌入式操作系統(tǒng)進(jìn)行分析,實(shí)現(xiàn)理論原理與技術(shù)實(shí)現(xiàn)的呼應(yīng)與融合。
3.3 多角度、多層次的知識(shí)原理綜合探討
嵌入式系統(tǒng)的諸多知識(shí)點(diǎn)之間都存在著密切、有機(jī)的聯(lián)系,以多角度、多層次綜合的方式對(duì)相關(guān)的知識(shí)點(diǎn)進(jìn)行單點(diǎn)縱深穿透和多點(diǎn)橫向關(guān)聯(lián)對(duì)于提高課程質(zhì)量將是非常有意義的,這對(duì)于研究型專業(yè)人才的思維和能力培養(yǎng)尤為重要。在之前模塊化、模型化的基礎(chǔ)上,進(jìn)一步基于“從宏觀特性到微觀機(jī)制、從理論原理到具體設(shè)計(jì)以及軟件與硬件相結(jié)合”的指導(dǎo)思想進(jìn)行內(nèi)容梳理,可以深度發(fā)掘各個(gè)知識(shí)點(diǎn)的內(nèi)涵及其延伸。例如,對(duì)時(shí)鐘電路機(jī)制的討論可以簡要地從正弦波振蕩電路以及RC、LC、石英晶體振蕩電路的原理和結(jié)構(gòu)入手。在闡明相關(guān)物理原理的基礎(chǔ)上,進(jìn)一步分析和討論復(fù)雜系統(tǒng)中的多時(shí)鐘電路、處理器時(shí)鐘樹以及時(shí)鐘的配置、管理等機(jī)制。對(duì)存儲(chǔ)器子系統(tǒng)部分,首先要闡述各類存儲(chǔ)器的內(nèi)部機(jī)制、外部接口和訪問特性,進(jìn)而簡要闡明不同類型存儲(chǔ)元的微電路結(jié)構(gòu),如E2PROM采用的FLOTOX管、Flash采用的新型隧道氧化層MOS管、FRAM采用的PZT型CMOS管等。透過對(duì)這些微電路的物理結(jié)構(gòu)、半導(dǎo)體材料屬性以及熱電子、能量勢壘等物理效應(yīng)的分析,將能更為清晰地分析存儲(chǔ)器機(jī)制與特性。以Flash為例,微電路特性決定了存儲(chǔ)元的訪問速度會(huì)隨著擦寫次數(shù)的增加而降低,存儲(chǔ)元隧道二氧化硅層中陷落的電子越來越多,其擦除周期越來越長,且在數(shù)十萬次擦寫后最終失效。因此,F(xiàn)lash中的各個(gè)存儲(chǔ)元都應(yīng)該被均勻地擦寫??紤]這一特征,傳統(tǒng)的磁盤型文件系統(tǒng)也不再適合于Flash存儲(chǔ)介質(zhì),因此,就需要設(shè)計(jì)具有磨損均衡和位糾錯(cuò)能力的訪問軟件或文件系統(tǒng)。
以前后臺(tái)或多任務(wù)嵌入式軟件中的數(shù)據(jù)共享問題為例進(jìn)行分析[5-6]。中斷服務(wù)程序打斷正在訪問共享數(shù)據(jù)的后臺(tái)任務(wù)進(jìn)行共享變量的寫入操作,將會(huì)導(dǎo)致共享數(shù)據(jù)被破壞進(jìn)而引起系統(tǒng)的邏輯錯(cuò)誤,這稱之為數(shù)據(jù)共享問題。顯然,只要保證后臺(tái)任務(wù)能夠不被中斷地、“一次性”地完成共享數(shù)據(jù)的訪問,就能夠避免或解決數(shù)據(jù)共享問題。然而,當(dāng)我們從微觀、硬件或系統(tǒng)軟件等多維度綜合分析各種解決方案時(shí),一些在形式上看似可行的方案卻又行不通。這或者因?yàn)閿?shù)據(jù)寬度大于寄存器寬度,或者因?yàn)橐粭l高級(jí)語言代碼對(duì)應(yīng)于多條匯編指令,或者因?yàn)殚_關(guān)中斷時(shí)可能存在邏輯漏洞,又或者因?yàn)榫幾g器的優(yōu)化功能刪除了解決問題的有效代碼等[6]。因此,嵌入式系統(tǒng)中的數(shù)據(jù)共享與硬件體系、中斷機(jī)制、編譯器等密切相關(guān),要徹底地解決類似問題,設(shè)計(jì)中就需要從硬件結(jié)構(gòu)、微觀特性、算法邏輯、工具軟件等多個(gè)角度來進(jìn)行綜合考慮。這也說明以采用多維度的方式進(jìn)行學(xué)習(xí)和討論嵌入式系統(tǒng)技術(shù)是非常必要的。
3.4 發(fā)展歷程中的經(jīng)典示例與他山之石
嵌入式系統(tǒng)技術(shù)領(lǐng)域的技術(shù)以及設(shè)計(jì)、實(shí)現(xiàn)系統(tǒng)的途徑豐富多樣,通常不會(huì)出現(xiàn)類似于通用計(jì)算機(jī)領(lǐng)域中WINTEL架構(gòu)的技術(shù)壟斷。這為嵌入式系統(tǒng)技術(shù)及其應(yīng)用領(lǐng)域的拓展提供了非常廣闊的創(chuàng)新空間。實(shí)際上,在計(jì)算技術(shù)體系的發(fā)展中創(chuàng)造和創(chuàng)新一直層出不窮,也涌現(xiàn)出諸多勵(lì)志的事例。例如,鐵電存儲(chǔ)器的概念是由MIT的研究生Dudley Allen Buck在其碩士論文中率先提出的。瑞典梅拉達(dá)倫大學(xué)的博士生Adam Dunkels自行設(shè)計(jì)了LwIP(輕量互聯(lián)網(wǎng)協(xié)議)、μIP(微型互聯(lián)網(wǎng)協(xié)議),已演化為著名的物聯(lián)網(wǎng)操作系統(tǒng)Contiki。20世紀(jì)90年代末,清華大學(xué)在研制國內(nèi)第一臺(tái)產(chǎn)品化虛擬軸機(jī)床數(shù)控系統(tǒng)時(shí),因?yàn)闊o法找到適合其嵌入式Linux操作系統(tǒng)的圖形庫,而自行設(shè)計(jì)、開發(fā)了MiniGUI,現(xiàn)在MiniGUI已成為被廣泛使用的著名嵌入式圖形庫系統(tǒng)。在知識(shí)體系中穿插地引入這些經(jīng)典事例,一方面會(huì)有助于潤色課程內(nèi)容,讓知識(shí)體系更為飽滿和生動(dòng)。另一方面,也有利于學(xué)習(xí)者了解技術(shù)背后的歷史和來龍去脈,讓學(xué)習(xí)者從這些事例閱讀中汲取精神的營養(yǎng),受到激勵(lì)和鼓舞,進(jìn)而以創(chuàng)新的思維和積極的態(tài)度去迎接挑戰(zhàn)。
4 結(jié) 語
筆者所提出的多維融合知識(shí)體系適合于計(jì)算機(jī)科學(xué)與技術(shù)、物聯(lián)網(wǎng)工程等相關(guān)專業(yè)本科生或研究生的培養(yǎng)體系。多年的教學(xué)實(shí)踐和反饋分析表明,采用上述知識(shí)體系和教學(xué)模式可以有效地促進(jìn)學(xué)生對(duì)相關(guān)知識(shí)的掌握并提高課程的整體教學(xué)質(zhì)量。下一步將在不斷完善課程內(nèi)容的基礎(chǔ)上,繼續(xù)對(duì)教學(xué)模式和方法進(jìn)行探索和優(yōu)化。
基金項(xiàng)目: 2016年度西北工業(yè)大學(xué)教學(xué)與考核模式改革課題項(xiàng)目(校教字[2016]485號(hào));2016年度西北工業(yè)大學(xué)專項(xiàng)教材計(jì)劃項(xiàng)目(校教字[2016]216號(hào))。
作者簡介:張凱龍,男,工學(xué)博士,法國國立巴黎高等礦業(yè)學(xué)校(MINES ParisTech )博士后,副教授,中國計(jì)算機(jī)學(xué)會(huì)嵌入式系統(tǒng)專委會(huì)常務(wù)委員、系統(tǒng)軟件專委會(huì)委員,研究方向?yàn)闄C(jī)器人與實(shí)時(shí)智能系統(tǒng)、自適應(yīng)嵌入實(shí)時(shí)計(jì)算等技術(shù),主講“嵌入式(計(jì)算機(jī))系統(tǒng)”“Real-Time Intelligent System Design”等課程,kl.zhang@nwpu.edu.cn。
參考文獻(xiàn):
[1]王蘇峰, 寧洪, 陸洪毅, 等. 嵌入式系統(tǒng)課程體系及其創(chuàng)新實(shí)踐的探索[J]. 計(jì)算機(jī)教育, 2010(7): 45-48.
[2]張凱龍, 周興社, 張彥春, 等.“嵌入式計(jì)算”課程的教學(xué)探索與思考[J]. 計(jì)算機(jī)教育, 2009(4): 65-67.
[3]韓德強(qiáng), 孫燕英. 北京工業(yè)大學(xué)嵌入式系統(tǒng)精品課程建設(shè)[J]. 計(jì)算機(jī)教育, 2006(8): 12-14.
[4]蔣銀珍, 王宜懷. 計(jì)算機(jī)專業(yè)的嵌入式系統(tǒng)課程教學(xué)探討[J]. 計(jì)算機(jī)教育, 2011(18): 46-48.
[5]張凱龍. 嵌入式系統(tǒng)體系、原理與設(shè)計(jì)[M]. 北京: 清華大學(xué)出版社, 2017: 1, 448-458.
[6]西蒙. 嵌入式系統(tǒng)軟件教程[M]. 陳向群, 等譯. 北京: 機(jī)械工業(yè)出版社, 2005: 49-68.
(編輯:彭遠(yuǎn)紅)