ARM嵌入式系統的問題分析與總結
本文引用地址:http://www.104case.com/article/148366.htm
就目前的發展看,由于ARM等32位處理器應用漸成主流,開發工具已較完善、成熟,對于普通高校計算機學科的嵌入式系統教學,筆者認為可以定位在以32位嵌入式系統開發為主,重點是嵌入式系統的軟硬件結構、嵌入式OS的知識,以及嵌入式軟件設計(包括優化)。課程主體內容基本與硬件平臺(處理器型號)無關,實驗可以采用基于ARM核的不同廠家處理器的實驗平臺。主要考慮以下幾點:
①在32位嵌入式系統開發上,軟件開發人員的需求比硬件開發人員要多得多(盡管目前硬件開發人員較難找,但這應該是電子等專業培養的)。一般在一個從事嵌入式應用系統開發的公司中,軟硬件人員的比例不會小于10:1。由于學習時間有限,教學重點應該偏軟件。
②現代社會強調分工、合作,以求得整體利益的最大化。對個人的要求首先是專才,能把局部工作做精、做好。通才是需要的,但數量會比專才少得多,而且通才是練出來的,不是教出來的。今后的大學是大眾教育,教學只能面向大眾需求。在相關專業的研究生階段,對一些有基礎、有興趣的學生,可以進行一些系統級硬件、底層軟件的開發實踐,同時也可滿足社會對高層次嵌入式人才的需要。
③以此為主,可以再開設2門選修課。向下為“單片機原理與應用”,此課程以實踐為主,讓有興趣的學生可以自己設計、制作一些單片機應用系統,同時也鍛煉了硬件動手能力。向上為“數字信號處理(DSP)”,讓那些數學基礎較好、對實時信號處理有興趣的學生有用武之地(現在這樣的學生很難得)。
另外,由于應用日趨復雜,而教學時間有限,一個本科生在校期間不可能深入學習嵌入式系統的很多細節,嵌入式教學應采用自上而下的教學方法。一開始不必花很多時間講解處理器內核架構/指令系統,只要知道各種內核的基本特點即可,重點學習、掌握處理器、外設的編程結構(即編程者角度看到的編程模型結構,非具體物理實現結構)。真實的應用、研究設計都是從粗粒度向細粒度進階的,是一個自頂向下的過程,首先要重視的是系統架構和各個抽象層。1000行的C程序,編譯后生成的目標代碼只有10 KB左右,試想現在的MCU Flash動輒幾百KB,為什么?一個目標代碼幾百KB的C程序,一般不是完全由個人寫出來的,而都會使用一些第三方的庫函數、中間件等。硬件也一樣,現在很多硬件系統都會使用一些模塊(Module),盡管這些模塊看上去還是一個芯片,但實際上已經是一個SiP模塊,如WiFi模塊。所以,在了解基本嵌入式系統結構的基礎上,本科階段要更多地學習各種系統、模塊、外設、協議、庫函數的“邊界(Interface)”,能夠搭建一個簡單系統(How to do),今后在工作、或研究生階段進一步去做好一個系統(How to do better)。
5結語
嵌入式系統作為一種特殊的計算機應用系統,在任何時期都有相對的高、中、低端應用,即使在今后,沒有OS支持的4位或8位單片機的嵌入式應用仍有大量需求,但趨勢是系統化、復雜化。這既是嵌入式系統的特點--廣泛性、差異性和不可壟斷性,也是廣大嵌入系統研發人員的生存與發展空間。ARM處理器在便攜、手持式設備以及工業控制等應用領域,在今后相當長的時間內是一個很好的選擇。當然,沒有一種型號的處理器是可以覆蓋所有應用的,也不是搬上一個嵌入式OS,就可以很好地解決軟件問題的。深入了解各種器件特性,選擇最合適的處理器、外圍器件、操作系統和軟件庫,盡可能地優化軟件設計,最貼切地滿足應用需求,以獲得最好的系統性價比,是嵌入式系統設計開發的精髓。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論