1 嵌入式系統(tǒng)的知識(shí)體系
嵌入式系統(tǒng)的應(yīng)用范圍可以粗略分為兩大類(lèi):電子系統(tǒng)的智能化(工業(yè) 控制、現(xiàn)代農(nóng)業(yè)、家用電器、汽車(chē)電子、測(cè)控系統(tǒng)、數(shù)據(jù)采集等),計(jì)算機(jī)應(yīng)用的延伸(MP3、手機(jī)、通信、網(wǎng)絡(luò)、計(jì)算機(jī)外圍設(shè)備等)。從這些應(yīng)用可以看出, 要完成一個(gè)以MCU為核心的嵌入式系統(tǒng)應(yīng)用產(chǎn)品設(shè)計(jì),需要硬件、軟件及行業(yè)領(lǐng)域相關(guān)知識(shí)。硬件主要有MCU的硬件最小系統(tǒng)、輸入/輸出外圍電路、人機(jī)接口 設(shè)計(jì)。軟件設(shè)計(jì)有固化軟件的設(shè)計(jì),也可能含PC機(jī)軟件的設(shè)計(jì)。行業(yè)知識(shí)需要通過(guò)協(xié)作、交流與總結(jié)獲得。
概括地說(shuō),學(xué)習(xí)以MCU為核心的嵌入式系統(tǒng),需要以下軟硬件基礎(chǔ)知識(shí)與實(shí)踐訓(xùn)練
①硬件最小系統(tǒng)(電源、晶振、復(fù)位、寫(xiě)入調(diào)試接口);
②通用I/O(開(kāi)關(guān)量輸入/輸出,涉及各種二值量檢測(cè)與控制);
③模/數(shù)轉(zhuǎn)換(各種傳感器信號(hào)的采集與處理,如紅外、溫度、光敏、超聲波、方向等);
④數(shù)/模轉(zhuǎn)換(對(duì)模擬量設(shè)備利用數(shù)字進(jìn)行控制);
⑤通信(串行通信接口SCI、串行外設(shè)接口SPI、集成電路互聯(lián)總線(xiàn)I2C、CAN、USB、
⑥顯示(LED、LCD等);
⑦控制(控制各種設(shè)備,包括PWM等控制技術(shù));
⑧數(shù)據(jù)處理(圖形、圖像、語(yǔ)音、視頻等的處理或識(shí)別);
⑨各種具體應(yīng)用。
萬(wàn)變不離其宗,任何應(yīng)用都可以歸入這幾類(lèi)。而應(yīng)用中的硬件設(shè)計(jì)、軟件設(shè)計(jì)、測(cè)試等都必須遵循嵌入式軟件工程的方法、原理與基本原則。所以,嵌入式軟件工程也是嵌入式系統(tǒng)知識(shí)體系的有機(jī)組成部分,只不過(guò)它融于具體項(xiàng)目的開(kāi)發(fā)過(guò)程之中。
以上實(shí)踐訓(xùn)練涉及硬件基礎(chǔ)、軟件基礎(chǔ)及相關(guān)領(lǐng)域知識(shí)。計(jì)算機(jī)語(yǔ)言、操作系統(tǒng)、開(kāi)發(fā)環(huán)境等均是達(dá)到這些目的的工具。有些初學(xué)者,容易把工具的使用與所要達(dá) 到的真正目的相混淆。例如,有的學(xué)習(xí)者學(xué)了很長(zhǎng)時(shí)間的嵌入式操作系統(tǒng)移植,而不進(jìn)行實(shí)際嵌入式系統(tǒng)產(chǎn)品的開(kāi)發(fā),到最后也做不好一個(gè)嵌入式系統(tǒng)小產(chǎn)品,偏離 了學(xué)習(xí)目標(biāo),甚至放棄嵌入式系統(tǒng)領(lǐng)域。這就是進(jìn)入了嵌入式系統(tǒng)學(xué)習(xí)誤區(qū),下面對(duì)此作一些分析。
2 嵌入式系統(tǒng)的學(xué)習(xí)誤區(qū)
關(guān)于嵌入式系統(tǒng)的學(xué)習(xí)方法,因?qū)W習(xí)經(jīng)歷、學(xué)習(xí)環(huán)境、學(xué)習(xí)目的、已有的知識(shí)基礎(chǔ)等不同,可能在學(xué)習(xí)順序、內(nèi)容選擇、實(shí)踐方式等方面有所不同。但是,應(yīng)該明 確哪些是必備的基礎(chǔ)知識(shí),哪些應(yīng)該先學(xué),哪些應(yīng)該后學(xué);哪些必須通過(guò)實(shí)踐才能獲得;哪些是與具體芯片無(wú)關(guān)的通用知識(shí),哪些是與具體芯片或開(kāi)發(fā)環(huán)境相關(guān)的知 識(shí)。
由于微處理器與微控制器種類(lèi)繁多,也可能由于不同公司、機(jī)構(gòu)出于自身的利益,給出一些誤導(dǎo)性宣傳,特別是我國(guó)嵌入式微控制器制造技 術(shù)落后,使得人們對(duì)微控制器的發(fā)展,在認(rèn)識(shí)與理解上存在差異,導(dǎo)致一些初學(xué)者進(jìn)入嵌入式系統(tǒng)的學(xué)習(xí)誤區(qū),浪費(fèi)了寶貴的學(xué)習(xí)時(shí)間。下面分析可能存在的幾個(gè)誤 區(qū)。
2.1 操作系統(tǒng)的困惑
如果說(shuō),學(xué)習(xí)嵌入式系統(tǒng)不是為了開(kāi)發(fā)其應(yīng)用產(chǎn)品,那 就沒(méi)有具體目標(biāo),諸如學(xué)習(xí)方法這樣的問(wèn)題也就不必談了。實(shí)際上,這正是許多人想學(xué),又不知從何開(kāi)始學(xué)習(xí)的關(guān)鍵問(wèn)題所在,不知道自己學(xué)習(xí)的具體目標(biāo)。于是, 看了一些培訓(xùn)廣告,看了書(shū)店中種類(lèi)繁多的嵌入式系統(tǒng)書(shū)籍,或上網(wǎng)以“嵌入式系統(tǒng)”為關(guān)鍵詞進(jìn)行查詢(xún),就參加培訓(xùn)或看書(shū),開(kāi)始“學(xué)習(xí)起來(lái)”。對(duì)于有計(jì)算機(jī)閱 歷的人,往往選擇一個(gè)嵌入式操作系統(tǒng)就開(kāi)始學(xué)習(xí)了。這有點(diǎn)像“瞎子摸大象”,只了解其一個(gè)側(cè)面。這樣如何能對(duì)嵌入式產(chǎn)品的開(kāi)發(fā)過(guò)程有全面了解呢?針對(duì)許多 初學(xué)者選擇“XXX嵌入式操作系統(tǒng)+XXX處理器”的嵌入式系統(tǒng)入門(mén)學(xué)習(xí)模式,筆者認(rèn)為是不合適的。筆者的建議是:首先把嵌入式系統(tǒng)軟件與硬件基礎(chǔ)打好 了,再根據(jù)實(shí)際需要,選擇一種實(shí)時(shí)操作系統(tǒng)(RTOS)進(jìn)行學(xué)習(xí)實(shí)踐。要記?。篟TOS是開(kāi)發(fā)某些類(lèi)嵌入式產(chǎn)品的輔助工具,是手段,不是目的;許多類(lèi)嵌入 式產(chǎn)品,并不需要RTOS。所以,一開(kāi)始就學(xué)習(xí)RTOS,并不符合“由淺入深、循序漸進(jìn)”的學(xué)習(xí)規(guī)律。
RTOS本身由于種類(lèi)繁多,實(shí)際 使用何種RTOS,一般需要由工作單位確定?;A(chǔ)階段主要學(xué)習(xí)RTOS的基本原理與RTOS上的軟件開(kāi)發(fā)方法,而不是學(xué)習(xí)如何設(shè)計(jì)RTOS。以開(kāi)發(fā)實(shí)際嵌 入式產(chǎn)品為目標(biāo)的學(xué)習(xí)者,不要把過(guò)多的精力花在設(shè)計(jì)或移植RTOS上面。正如很多人使用Windows操作系統(tǒng),而設(shè)計(jì) Windows操作系統(tǒng)的只有Microsoft。許多人“研究”Linux,但不使用它,浪費(fèi)了時(shí)間。人的精力是有限的,學(xué)習(xí)必須有所選擇。
2.2 硬件與軟件的困惑
以MCU為核心的嵌入式技術(shù)的知識(shí)體系必須通過(guò)具體的MCU來(lái)體現(xiàn)、實(shí)踐。但是,選擇任何型號(hào)的MCU,其芯片相關(guān)的知識(shí)只占知識(shí)體系的20%左 右,80%左右是通用的軟件硬件及相關(guān)知識(shí)。80%的通用知識(shí),必須通過(guò)具體實(shí)踐才能獲得,所以學(xué)習(xí)嵌入式技術(shù)一般要選擇一個(gè)系列的MCU。
系統(tǒng)含有硬件與軟件兩大部分,它們之間的關(guān)系如何?有些學(xué)者,僅從電子的角度認(rèn)識(shí)嵌入式系統(tǒng)。認(rèn)為“嵌入式系統(tǒng)=MCU硬件系統(tǒng)+小程序”。這些學(xué)者大 多具有良好的電子技術(shù)基礎(chǔ)知識(shí)。實(shí)際情況是,早期MCU內(nèi)部RAM小,程序存儲(chǔ)器外接,需要外擴(kuò)各種I/O,沒(méi)有像USB、嵌入式以太網(wǎng)等這樣較復(fù)雜的接 口。因此,程序占總設(shè)計(jì)量比例小于50%,使人們認(rèn)為嵌入式系統(tǒng)(單片機(jī))是“電子系統(tǒng)”,以硬件為主,程序?yàn)檩o。但是,隨著MCU制造技術(shù)的發(fā)展,不 僅.MCU內(nèi)部RAM越來(lái)越大,F(xiàn)lash進(jìn)入MCU內(nèi)部改變了傳統(tǒng)的嵌入式系統(tǒng)開(kāi)發(fā)與調(diào)試方式,固件程序可以更方便地調(diào)試與在線(xiàn)升級(jí),許多情況下與開(kāi)發(fā) PC機(jī)程序的方便程度相差無(wú)幾,只不過(guò)開(kāi)發(fā)環(huán)境與運(yùn)行環(huán)境不是同一載體而已。這使得嵌入式系統(tǒng)的軟件硬件設(shè)計(jì)方法發(fā)生了根本變化。
有些學(xué)者,僅從軟件開(kāi)發(fā)角度認(rèn)識(shí)嵌入式系統(tǒng),甚至僅從嵌入式操作系統(tǒng)認(rèn)識(shí)嵌入式系統(tǒng)。這些學(xué)者大多具有良好的計(jì)算機(jī)軟件開(kāi)發(fā)基礎(chǔ)知識(shí),認(rèn)為硬件是生產(chǎn)廠(chǎng) 商的事。他們沒(méi)有認(rèn)識(shí)到,嵌入式系統(tǒng)產(chǎn)品的軟件與硬件均是需要開(kāi)發(fā)者設(shè)計(jì)的。筆者常常接到一些關(guān)于嵌入式產(chǎn)品穩(wěn)定性的咨詢(xún),發(fā)現(xiàn)大多數(shù)是由于軟件開(kāi)發(fā)者對(duì) 底層硬件的基本原理不理解。特別是有些功能軟件開(kāi)發(fā)者,過(guò)分依賴(lài)于底層硬件的驅(qū)動(dòng)軟件,自己對(duì)底層驅(qū)動(dòng)原理知之甚少。實(shí)際上,一些功能軟件開(kāi)發(fā)者,名義上 在做嵌入式軟件,其實(shí)僅僅是使用嵌入式編輯、編譯環(huán)境而已,本質(zhì)與開(kāi)發(fā)通用PC機(jī)軟件沒(méi)有兩樣。而底層硬件驅(qū)動(dòng)軟件的開(kāi)發(fā),若不全面考慮高層功能軟件對(duì)底 層硬件的可能調(diào)用,也會(huì)使封裝或參數(shù)設(shè)計(jì)得不合理或不完備,導(dǎo)致高層功能軟件調(diào)用困難??梢钥闯觯舭亚度胧较到y(tǒng)的開(kāi)發(fā)孤立地分為硬件設(shè)計(jì)、底層硬件驅(qū)動(dòng) 軟件設(shè)計(jì)、高層功能軟件設(shè)計(jì),那么一旦出現(xiàn)問(wèn)題,就可能難以定位。實(shí)際上,嵌入式系統(tǒng)設(shè)計(jì)是一個(gè)軟件、硬件協(xié)同設(shè)計(jì)工程,不能像通用計(jì)算機(jī)那樣,軟件、硬 件完全分開(kāi)來(lái)看,而要在一個(gè)大的框架內(nèi)協(xié)調(diào)工作。
學(xué)習(xí)嵌入式系統(tǒng)是以軟件為主還是以硬件為主,或者如何選擇切入點(diǎn),如何在軟件與 硬件之間取得平衡?對(duì)于這個(gè)困惑的建議是:要想成為一名真正的嵌入式系統(tǒng)設(shè)計(jì)師,在初學(xué)階段,必須打好嵌入式系統(tǒng)的硬件與軟件基礎(chǔ)。以下是從事嵌入式系統(tǒng) 設(shè)計(jì)二十多年的美國(guó)學(xué)者JohnCatsoulis在《Designing Embedded Hardware》一書(shū)中關(guān)于這個(gè)問(wèn)題的總結(jié):嵌入式系統(tǒng) 與硬件緊密相關(guān),是軟件與硬件的綜合體,沒(méi)有對(duì)硬件的理解就不可能寫(xiě)好嵌入式軟件;同樣,沒(méi)有對(duì)軟件的理解也不可能設(shè)計(jì)好嵌入式硬件。
2.3 片面認(rèn)識(shí)嵌入式系統(tǒng)
嵌入式系統(tǒng)產(chǎn)品種類(lèi)繁多,應(yīng)用領(lǐng)域各異。在第1部分中,把嵌入式系統(tǒng)的應(yīng)用范圍粗略分為電子系統(tǒng)的智能化與計(jì)算機(jī)應(yīng)用的延伸兩大類(lèi)。從初學(xué)者角度,可能 存在分別從這兩個(gè)角度片面認(rèn)識(shí)嵌入式系統(tǒng)的問(wèn)題。因此,一些從電子系統(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í)過(guò)程中的概念與方法生搬硬套到嵌入式系統(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ǔ),通過(guò)實(shí)踐,為成為良好的嵌入式系統(tǒng)設(shè)計(jì)師建立起基本知識(shí)結(jié)構(gòu)。學(xué) 習(xí)過(guò)程中,具體應(yīng)用系統(tǒng)可為實(shí)踐載體,但不能拘泥于具體系統(tǒng),應(yīng)該有一定的抽象與歸納。例如,初學(xué)者開(kāi)發(fā)實(shí)際控制系統(tǒng)時(shí)沒(méi)有使用實(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è)十分簡(jiǎn) 明的實(shí)際系統(tǒng)加上不必要的實(shí)時(shí)操作系統(tǒng)。因此,片面認(rèn)識(shí)嵌入式系統(tǒng),可能導(dǎo)致學(xué)習(xí)困惑。應(yīng)該根據(jù)實(shí)際項(xiàng)目需要,鍛煉自己分析實(shí)際問(wèn)題、解決問(wèn)題的能力。這 是一個(gè)長(zhǎng)期的學(xué)習(xí)與實(shí)踐過(guò)程,不能期望通過(guò)短期培訓(xùn)完成整體知識(shí)體系的建立,應(yīng)該重視自身實(shí)踐,全面地理解嵌入式系統(tǒng)的知識(shí)體系。
2.4 入門(mén)芯片選擇的困惑
嵌入式系統(tǒng)的大部分初學(xué)者需要選擇一個(gè)微控制器(MCU)進(jìn)行入門(mén)級(jí)學(xué)習(xí),面對(duì)眾多廠(chǎng)家生產(chǎn)的微控制器系列,往往不知如何是好。
首先是關(guān)于位數(shù)問(wèn)題,目前主要有8位、16位和32位MCU。不同位數(shù)的MCU各有應(yīng)用領(lǐng)域,這一點(diǎn)與通用微機(jī)有很大不同。例如做一個(gè)遙控器,不需要使 用 32位MCU,否則MCU芯片價(jià)格就已經(jīng)超過(guò)遙控器價(jià)格需求。對(duì)于首次接觸嵌入式系統(tǒng)的學(xué)習(xí)者,可以根據(jù)自己的知識(shí)基礎(chǔ)選擇入門(mén)芯片的位數(shù)。建議大多 數(shù)初學(xué)者選擇8位MCU作為快速入門(mén)芯片,了解一些匯編與底層硬件知識(shí),之后再選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ū),即誤認(rèn)為選擇工作頻率高的芯片進(jìn)行入門(mén)學(xué)習(xí),更先進(jìn)。實(shí)際上,工作頻率高可能給初學(xué)者帶來(lái)不少困難。
實(shí)際嵌入式系統(tǒng)設(shè)計(jì)不是追求芯片位數(shù)、工作頻率、操作系統(tǒng)等因素,而是追求穩(wěn)定可靠、維護(hù)、升級(jí)、功耗、價(jià)格等指標(biāo)。初學(xué)者選擇入門(mén)芯片,是通過(guò)某 一: MCU作為藍(lán)本,獲得嵌入式系統(tǒng)知識(shí)體系的通用基礎(chǔ)。其基本原則是:入門(mén)時(shí)間較短、硬件成本較低,知識(shí)要素較多,學(xué)習(xí)難度較低。
3 基礎(chǔ)階段的學(xué)習(xí)建議
基于以上討論,下面對(duì)廣大渴望學(xué)習(xí)嵌入式系統(tǒng)的學(xué)子提出幾點(diǎn)基礎(chǔ)階段的學(xué)習(xí)建議:
①嵌入式系統(tǒng)軟件硬件密切相關(guān),一定要打好軟硬件基礎(chǔ)。其實(shí),只要找到正確的方法,加上努力,任何理工科學(xué)生,甚至非理工科學(xué)生,都能學(xué)好嵌入式系統(tǒng)。
②選擇一個(gè)芯片及硬件評(píng)估板(入門(mén)芯片最好簡(jiǎn)單一點(diǎn),例如8位MCU)、選擇一本好書(shū)(最好有規(guī)范的例子)、找一位好老師(最好是有經(jīng)驗(yàn)且熱心的)。硬 件評(píng)估板的價(jià)格一定要在1000元以下,不要太貴,最好能有自己動(dòng)手的空間。不花一分硬件錢(qián)想要學(xué)好嵌入式系統(tǒng)不實(shí)際,因?yàn)檫@是實(shí)踐性很強(qiáng)的學(xué)科。好書(shū), 可以讓人少走彎路,不被誤導(dǎo)。好老師也可以是做過(guò)一些實(shí)際項(xiàng)目的學(xué)長(zhǎng)(一定要找做過(guò)幾個(gè)成功項(xiàng)目的學(xué)長(zhǎng)或老師做指導(dǎo),否則經(jīng)驗(yàn)不足也可能誤導(dǎo)),有教師指 導(dǎo),學(xué)習(xí)進(jìn)程會(huì)加快(人工智能學(xué)科里有個(gè)術(shù)語(yǔ)叫無(wú)教師指導(dǎo)學(xué)習(xí)模式與有教師指導(dǎo)學(xué)習(xí)模式,無(wú)教師指導(dǎo)學(xué)習(xí)模式比有教師指導(dǎo)學(xué)習(xí)模式復(fù)雜許多。
③許多人怕硬件,其實(shí)嵌入式系統(tǒng)硬件比電子線(xiàn)路好學(xué)多了。只要深入理解:MCU的硬件最小系統(tǒng),對(duì)I/O口、串行通信、鍵盤(pán)、LED、LCD、 SPI、 I2C、PWM、A/D(包括一些傳感器)、D/A等逐個(gè)實(shí)驗(yàn)理解,逐步實(shí)踐,再通過(guò)動(dòng)手做一個(gè)實(shí)際的小系統(tǒng),底層硬件基礎(chǔ)就有了。各個(gè)硬件模 塊驅(qū)動(dòng)程序的編寫(xiě)是嵌入式系統(tǒng)的必備基礎(chǔ)。學(xué)習(xí)嵌入式系統(tǒng)的初期,這個(gè)過(guò)程是必須的。
④至于嵌入式實(shí)時(shí)操作系統(tǒng)RTOS,一定不 要一開(kāi)始就學(xué),這樣會(huì)走很多彎路,也會(huì)使你對(duì)嵌入式系統(tǒng)感到畏懼。等你軟件硬件基礎(chǔ)打好了,再學(xué)習(xí)就感到容易理解。實(shí)際上,許多嵌入式應(yīng)用并不需要操作系 統(tǒng)。也可以根據(jù)實(shí)際項(xiàng)目需要,再學(xué)習(xí)特定的RTOS。不要被一些嵌入式實(shí)時(shí)操作系統(tǒng)培訓(xùn)班的宣傳所誤導(dǎo),而忽視實(shí)際嵌入式系統(tǒng)軟硬件基礎(chǔ)知識(shí)的學(xué)習(xí)。
⑤要避免片面地單純從“電子”或“計(jì)算機(jī)軟件”角度認(rèn)識(shí)嵌入式系統(tǒng)。前面說(shuō)過(guò),嵌入式系統(tǒng)是軟件與硬件的綜合體。因此,要逐步從MCU的最小系統(tǒng)開(kāi)始, 一點(diǎn)一點(diǎn)理解硬件原理及底層硬件驅(qū)動(dòng)編程方法。要通過(guò)規(guī)范的例子,理解軟件工程封裝、可復(fù)用等思想。通過(guò)規(guī)范編程,積累底層構(gòu)件(component), 也就是一個(gè)一個(gè)模塊;但是要封裝得比較好,可復(fù)用。
⑥注重實(shí)驗(yàn)與實(shí)踐。這里說(shuō)的實(shí)驗(yàn)主要指通過(guò)重復(fù)來(lái)驗(yàn)證他人的工作,目的是學(xué)習(xí)基礎(chǔ)知識(shí),這個(gè)過(guò)程一定要經(jīng)歷。實(shí)踐是自己設(shè)計(jì),有具體的“產(chǎn)品”目標(biāo)。如果花500元左右,自己做一個(gè)具有一定功能的小產(chǎn)品,且能穩(wěn)定運(yùn)行1年以上,就可以說(shuō)接近入門(mén)了。
⑦關(guān)于入門(mén)芯片的選擇。不要選太復(fù)雜的微控制器作為入門(mén)芯片,不能超越學(xué)習(xí)過(guò)程。不要一下子學(xué)習(xí)幾種芯片??梢酝ㄟ^(guò)一個(gè)芯片入門(mén),并具有一個(gè)實(shí)踐經(jīng)驗(yàn) 后,根據(jù)實(shí)際需要選擇芯片開(kāi)發(fā)實(shí)際產(chǎn)品。注意,不要把微處理器(MPU與微控制器(MCU)概念相混淆,微處理器只是微控制器的內(nèi)核。
⑧關(guān)于嵌入式操作系統(tǒng)的選擇??梢缘鹊骄哂幸欢▽?shí)踐基礎(chǔ)后,選擇一個(gè)簡(jiǎn)單、容易理解原理的嵌入式操作系統(tǒng)進(jìn)行學(xué)習(xí)。不要一開(kāi)始就學(xué)習(xí)幾種操作系統(tǒng),理解了基本原理,實(shí)踐中確有實(shí)際需要再學(xué)習(xí)也不遲。人總是要不斷學(xué)習(xí)的。
⑨關(guān)于匯編語(yǔ)言與C語(yǔ)言的取舍。隨著:MCU對(duì)C編譯的優(yōu)化支持,對(duì)于匯編語(yǔ)言可以只了解幾個(gè)必要的語(yǔ)句,而直接使用C語(yǔ)言編程。但必須通過(guò)第一個(gè)程序 理解芯片初始化過(guò)程、中斷機(jī)制、程序存儲(chǔ)情況等,區(qū)別于PC機(jī)程序的內(nèi)容。另外,為了測(cè)試的需要,最好掌握一門(mén)PC機(jī)編程語(yǔ)言。
⑩要明確自己的學(xué)習(xí)目的,并注意學(xué)習(xí)方法。要明確學(xué)習(xí)目的是打基礎(chǔ),還是為了適應(yīng)工作需要而進(jìn)行的短訓(xùn)。學(xué)習(xí)方法方面,要根據(jù)學(xué)習(xí)目的選擇合適的學(xué)習(xí)途 徑,注意理論學(xué)習(xí)與實(shí)踐、通用知識(shí)與芯片相關(guān)知識(shí)、硬件知識(shí)與軟件知識(shí)的平衡,要在理解軟件工程基本原理基礎(chǔ)上理解硬件構(gòu)件與軟件構(gòu)件等基本概念。
以上建議,僅供初學(xué)者參考。當(dāng)然,以上只是基礎(chǔ)階段的學(xué)習(xí)建議。要成為良好的嵌入式系統(tǒng)設(shè)計(jì)師,還需要在實(shí)際項(xiàng)目中鍛煉,并不斷學(xué)習(xí)與積累經(jīng)驗(yàn)。
評(píng)論
查看更多