時間:2018-08-27 00:00:00 來源:信盈達 作者:信盈達
由于微處理器與微控制器種類繁多,也可能由于不同公司、不同機構出于自身的利益,給出一些誤導性宣傳,特別是我國嵌入式微控制器制造技術的落后及其他相關情況,使得人們對微控制器的發(fā)展,在認識與理解上存在差異。導致一些初學者,進入了嵌入式系統(tǒng)的學習誤區(qū),浪費了寶貴的學習時間。下面分析初學者可能存在的幾個誤區(qū)。
如果說,學習嵌入式系統(tǒng)不是為了開發(fā)其應用產品,那就沒有具體目標了,許多諸如學習方法問題也就不必談了。實際上,這正是許多人想學,又不知從何開始學習的關鍵問題所在,不知道自己學習的具體目標。于是,看了一些培訓廣告,看了書店中書架上種類繁多的嵌入式系統(tǒng)的書籍,或上網以“嵌入式系統(tǒng)”為關鍵詞進行查詢,然后參加培訓或看書,開始“學習起來”。對于有計算機閱歷的人,往往選擇一個嵌入式操作系統(tǒng)就開始學習了。不好聽的比喻,有點象“瞎子摸大象”,只了解其一個側面。這樣如何能對嵌入式產品的開發(fā)過程有個全面了解呢?針對許多初學者選擇“xxx嵌入式操作系統(tǒng)+xxx處理器”的嵌入式系統(tǒng)入門學習模式,我認為是不合適的。我的建議是:首先把嵌入式系統(tǒng)軟件與硬件基礎打好了,再根據(jù)實際需要,選擇一種實時操作系統(tǒng)(RTOS)進行學習實踐。要記住:RTOS是開發(fā)某些類嵌入式產品的輔助工具,是手段,不是目的。許多類嵌入式產品,并不需要RTOS。所以,一開始就學習RTOS,并不符合學習“由淺入深、循序漸進”的學習規(guī)律。
RTOS本身由于種類繁多,實際使用何種RTOS,一般需要工作單位確定。基礎階段主要學習RTOS的基本原理與在RTOS之上的軟件開發(fā)方法,而不是學習如何設計RTOS。以開發(fā)實際嵌入式產品為目標的學習者,不要把過多的精力花在設計或移植RTOS上面。正如很多人使用Windows操作系統(tǒng),而設計Windows操作系統(tǒng)只有Microsoft。許多人“研究”Linux,但不使用它,浪費時間了,人的精力是有限的,學習必須有所選擇。
2.2 嵌入式系統(tǒng)學習誤區(qū)2-硬件與軟件的困惑
以MCU為核心的嵌入式技術的知識體系必須通過具體的MCU來體現(xiàn)、實踐與訓練。但是,選擇任何型號的MCU,其芯片相關的知識只占知識體系的20%,80%是通用知識。但是80%的通用知識,必須通過具體實踐才能進行,所以學習嵌入式技術要選擇一個系列的MCU。但不論如何,系統(tǒng)含有硬件與軟件兩大部分,它們之間的關系如何?
有些學者,僅從電子角度認識嵌入式系統(tǒng)。認為“嵌入式系統(tǒng)=MCU硬件系統(tǒng)+小程序”。這些學者,大多學習背景是具有良好的電子技術基礎知識。實際情況是,早期MCU內部RAM小、程序存儲器外接,需要外擴各種I/O,沒有象現(xiàn)在這樣USB、嵌入式以太網等較復雜的接口,因此,程序占總設計量小于50%,使人們認為嵌入式系統(tǒng)(單片機)是“電子系統(tǒng)”,以硬件為主、程序為輔。但是,隨著MCU制造技術的發(fā)展,不僅MCU內部RAM越來越大,F(xiàn)lash進入MCU內部改變了傳統(tǒng)的嵌入式系統(tǒng)開發(fā)與調試方式,固件程序可以被更方便地調試與在線升級,許多情況與開發(fā)PC機程序方便程度相差無幾,只不過開發(fā)環(huán)境與運行環(huán)境不是同一載體而已。這些情況使得嵌入式系統(tǒng)的軟件硬件設計方法發(fā)生了根本變化。
有些學者,僅從軟件開發(fā)角度認識嵌入式系統(tǒng),甚至有的僅從嵌入式操作系統(tǒng)認識嵌入式系統(tǒng)。這些學者,大多具有良好的計算機軟件開發(fā)基礎知識,認為硬件是生產廠商的事,沒有認識到,嵌入式系統(tǒng)產品的軟件與硬件均是需要開發(fā)者設計的。我常常接到一些關于嵌入式產品穩(wěn)定性的咨詢電話,發(fā)現(xiàn)大多數(shù)是由于軟件開發(fā)者對底層硬件的基本原理不理解造成的。特別是,有些功能軟件開發(fā)者,過分依賴于底層硬件的驅動軟件設計完美,自己對底層驅動原理知之甚少。實際上,一些功能軟件開發(fā)者,名義上再做嵌入式軟件,實際上,僅僅使用嵌入式編輯、編譯環(huán)境而已,本質與開發(fā)通用PC機軟件沒有兩樣。而底層硬件驅動軟件的開發(fā),若不全面考慮高層功能軟件對底層硬件的可能調用,也會使得封裝或參數(shù)設計得不合理或不完備,導致高層功能軟件的調用困難。從這段描述可以看出,若把一個嵌入式系統(tǒng)的開發(fā)孤立地分為硬件設計、底層硬件驅動軟件設計、高層功能軟件設計,一旦出現(xiàn)了問題,就可能難以定位。實際上,嵌入式系統(tǒng)設計是一個軟件、硬件協(xié)同設計工程,不能象通用計算機那樣,軟件、硬件完全分開來看,要在一個大的框架內協(xié)調工作。 面對學習嵌入式系統(tǒng)以軟件為主還是以硬件為主,或是如何選擇切入點,如何在軟件與硬件之間取得一些平衡。對于這個困惑的建議是:要想成為一名真正的嵌入式系統(tǒng)設計師,在初學階段,必須重視打好嵌入式系統(tǒng)的硬件與軟件基礎。以下是從事嵌入式系統(tǒng)設計二十多年的一個美國學者John Catsoulis 在《Designing Embedded Hardware》一書中關于這個問題的總結:嵌入式系統(tǒng)與硬件緊密相關,是軟件與硬件的綜合體,沒有對硬件的理解就不可能寫好嵌入式軟件,同樣沒有對軟件的理解也不可能設計好嵌入式硬件。
嵌入式系統(tǒng)產品種類繁多,應用領域各異。在2.1小節(jié)中,我們把嵌入式系統(tǒng)的應用范圍粗略分為電子系統(tǒng)的智能化與計算機應用的延伸兩大類,從初學者角度,可能有分別從這兩個角度片面認識嵌入式系統(tǒng)的問題。因此,一些從電子系統(tǒng)智能化角度認識嵌入式系統(tǒng)的學習者,可能會忽視編程結構、編程規(guī)范、軟件工程的要求、操作系統(tǒng)等知識的積累。另一些從計算機應用的延伸角度認識嵌入式系統(tǒng)的學習者,可能會把通用計算機學習過程中的概念與方法生搬硬套到嵌入式系統(tǒng)的實踐中,忽視嵌入式系統(tǒng)與通用計算機的差異。
實際上,在嵌入式系統(tǒng)學習與實踐的初始階段,應該充分了解嵌入式系統(tǒng)的特點,根據(jù)自身的已有知識結構,制定適合自身情況的學習計劃。目標應該是打好嵌入式系統(tǒng)的硬件與軟件基礎,通過實踐,為成為良好的嵌入式系統(tǒng)設計師建立起基本知識結構。學習過程,可以通過具體應用系統(tǒng)為實踐載體,但不能拘泥于具體系統(tǒng),應該有一定的抽象與歸納。例如,有的初學者開發(fā)一個實際控制系統(tǒng),沒有使用實時操作系統(tǒng),但不要認為實時操作系統(tǒng)不需要學習。又例如,有的初學者以一個帶有實時操作系統(tǒng)的樣例為藍本進行學習,但不要認為,任何嵌入式系統(tǒng)都需要使用實時操作系統(tǒng),甚至把一個十分簡明的實際系統(tǒng)加上一個不必要的實時操作系統(tǒng)。因此,片面認識嵌入式系統(tǒng),可能導致學習困惑。應該根據(jù)實際項目需要,鍛煉自己分析實際問題、解決問題的能力。這是一個比較長期的學習與實踐過程,不能期望通過短期培訓完成整體知識體系的建立,應該重視自身實踐,全面地理解嵌入式系統(tǒng)的知識體系。
嵌入式系統(tǒng)的大部分初學者需要選擇一個微控制器(MCU)進行入門級學習,面對眾多廠家生產的微控制器系列,不知如何是好。
首先是關于位數(shù)問題,目前主要有8位、16位、32位,面對嵌入式系統(tǒng)應用的多樣性,不同位數(shù)的MCU各有應用領域,這一點與通用微機有很大不同。你做一個遙控器,不需要使用一個32位MCU,可能一個MCU芯片價格已經超過遙控器價格需求。對于首次接觸嵌入式系統(tǒng)的學習者,可以根據(jù)自己的知識基礎選擇入門芯片的位數(shù)。建議大多數(shù)初學者,可以選擇一個8位MCU作為快速入門芯片,了解一些匯編與底層硬件知識,之后再選一個16位或32位芯片進行學習實踐。
關于芯片選擇的另一個誤區(qū),認為有“主流芯片”存在,嵌入式系統(tǒng)也可以形成芯片壟斷。這完全是一種誤解,是套用通用計算機系統(tǒng)的思維模式,而忽視了嵌入式系統(tǒng)應用的多樣性。
關于學習芯片選擇還有一個誤區(qū),是系統(tǒng)的工作頻率。誤認為選擇工作頻率高的芯片進行入門學習,表示更先進。實際上,工作頻率高可能給初學者帶來學習過程中的不少困難。
實際嵌入式系統(tǒng)設計不是追求芯片位數(shù)、工作頻率、操作系統(tǒng)等因素,而是追求穩(wěn)定可靠、維護、升級、功耗、價格等指標。而初學者選擇入門芯片,是通過某一MCU作為藍本獲得嵌入式系統(tǒng)知識體系的通用基礎,其基本原則是:入門時間較快、硬件成本較少,知識要素較多,學習難度較低。

信盈達2008年在深圳特區(qū)南山高新科技園成立。自成立至今近九年來專注為企業(yè)和個人提供高端方案設計、高端嵌入式/Android培訓等服務。公司下設信盈達實訓學院、信盈達研發(fā)中心、信盈達教學儀器三大業(yè)務板塊。九年來公司堅持"技術領先、服務領先",以雄厚的實力和專業(yè)的品質成為國內唯一有實力從產品最底層研發(fā)到系統(tǒng)層開發(fā)的嵌入式實訓、產品解決方案提供商。為中國IT行業(yè)提供最具價值的職業(yè)教育服務。專業(yè)培訓嵌入式、物聯(lián)網、人工智能、Java、單片機等課程,想了解更多信息點擊立馬咨詢
免費領取試聽卡
申請已經提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!