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