對(duì)于ARM嵌入式初學(xué)者而言,心中一定充滿著疑慮和困惑,很多問題也期待著找到答案。比如:
1、嵌入式要學(xué)什么?嵌入式到底有多難學(xué)?
2、學(xué)ARM需要什么基礎(chǔ),學(xué)ARM要發(fā)多長(zhǎng)時(shí)間?3、學(xué)ARM7還是ARM9,直接學(xué)ARM9怎么樣?
4、如何學(xué)ARM,怎么學(xué)ARM才輕松?
在此,我針對(duì)這些問題提提自己的看法,以期對(duì)初學(xué)者有所幫助,能在學(xué)習(xí)的道路上少走些彎路。
一
百花齊放的嵌入式,需要你量力取舍。
嵌入式前景廣闊,就業(yè)渠道多,無疑是當(dāng)前最有發(fā)展前途的行業(yè)。
特別是隨著消費(fèi)電子的智能化,3G的快速發(fā)展等等,嵌入式更顯重要。如果你想從事該領(lǐng)域,或者成為該領(lǐng)域的工程師,你就會(huì)發(fā)現(xiàn)要掌握的東西實(shí)在太多。
萬事開頭難,想進(jìn)入該領(lǐng)域你得找個(gè)合適的切入點(diǎn)。面對(duì)百花齊放的嵌入式,切入點(diǎn)有很多,我建議你量力而行。
嵌入式大體上可以劃分為:硬件和軟件兩部分。想從事嵌入式硬件的,推薦你從ARM7開始;想從事嵌入式軟件的,推薦你從uCOS-II嵌入式操作系統(tǒng)開始。
面對(duì)“ARM7+uCOS-II”方案,可能有些人會(huì)問“ARM9+Linux”方案是否也適合初學(xué)者,針對(duì)這個(gè)問題,我談?wù)勛约旱目捶ǎ?/p>
1、ARM7比起ARM9,更適合初學(xué)者學(xué)習(xí)。和ARM7相比,應(yīng)該說ARM9在性能方面有很大提高,但ARM9更適合作為產(chǎn)品開發(fā)平臺(tái),并不適合初學(xué)者用于學(xué)習(xí)。主要原因如下:從硬件設(shè)計(jì)方面,ARM7主頻在100MHz以內(nèi),學(xué)生完全可以掌握其設(shè)計(jì)技術(shù),而ARM9在200-600MHz左右,屬高速設(shè)計(jì),至少有3年以上經(jīng)驗(yàn)的硬件工程師才可能進(jìn)行設(shè)計(jì),一般學(xué)生很難掌握。
從軟件設(shè)計(jì)方面,在教學(xué)中采用源碼開發(fā)的操作系統(tǒng)已成為共識(shí),ARM7資源緊湊,適合運(yùn)行ucos和ucLinux等源碼開放的操作系統(tǒng),在教學(xué)中能夠充分體現(xiàn)嵌入式系統(tǒng)對(duì)資源、成本、可靠性有嚴(yán)格需要的特點(diǎn);而ARM9是系統(tǒng)集成度更高的SOC,適合跑WinCE、Linux等高級(jí)操作系統(tǒng),用于教學(xué)是“大馬拉小車”,這樣造成學(xué)生在設(shè)計(jì)時(shí)往往不會(huì)關(guān)注資源、成本、可靠性的限制,就如同用一臺(tái)PC進(jìn)行教學(xué)一樣,無法體現(xiàn)嵌入式教學(xué)的特點(diǎn)。
從應(yīng)用方面,而ARM7芯片價(jià)格比ARM9低得多,而且ARM7芯片是目前嵌入式產(chǎn)品市場(chǎng)的主流,很多手機(jī)、小靈通等產(chǎn)品都是基于ARM7的,占到市場(chǎng)份額的90%以上;采用ARM7就如同目前單片機(jī)開發(fā)與教學(xué)絕大多數(shù)采用51體系一樣,ARM7就是32位微處理器領(lǐng)域的51,有著持久的生命力。
2、ucos比起Linux,更適合初學(xué)者學(xué)習(xí)。 ucos內(nèi)核精簡(jiǎn),代碼不長(zhǎng),且相關(guān)書籍和學(xué)習(xí)資源相當(dāng)豐富,非常適合初學(xué)者學(xué)習(xí)。學(xué)習(xí)ucos可以很快地熟悉嵌入式操作系統(tǒng)的核心內(nèi)容,比如:內(nèi)核是如何工作的,任務(wù)如何創(chuàng)建,任務(wù)間如何通信,內(nèi)存如何管理等內(nèi)容。
經(jīng)過一段時(shí)間的學(xué)習(xí),可以真正理解嵌入式操作系統(tǒng),對(duì)后期的學(xué)習(xí)和使用很有幫助。 Linux代碼龐大,且操作復(fù)雜,不利于初學(xué)者學(xué)習(xí)。學(xué)習(xí)Linux是一項(xiàng)長(zhǎng)期且復(fù)雜的工作,要掌握的東西很多,比如:Linux常用命令、Linux操作系統(tǒng)知識(shí)、Linux下的編程與交叉編譯技術(shù)、Linux的驅(qū)動(dòng)程序編寫 等等。上面的每個(gè)知識(shí)點(diǎn)花一門課去講授都不為過,把這么多內(nèi)容都放在一起去理解,很難保證學(xué)習(xí)質(zhì)量。
總之,觀察了很多采用“ARM9+Linux”方案進(jìn)行學(xué)習(xí)的學(xué)者,都經(jīng)歷了一段漫長(zhǎng)而又痛苦的過程。對(duì)于初學(xué)者而言,采用這種方案的話,基本上是“不識(shí)廬山真面目,只緣身在此山中”。
二
平地起高樓,基礎(chǔ)要打牢。很多學(xué)者有這樣的心理:“要學(xué)我就要學(xué)最新最好的,要學(xué)就要學(xué)那種一學(xué)即能用的知識(shí)”,這種急功近利的想法是不對(duì)。
切記萬事萬物的發(fā)展都有其客觀規(guī)律,違背其規(guī)律就是在揠苗助長(zhǎng),最終達(dá)不到你的預(yù)期效果。學(xué)習(xí)新事物也是一樣,有其客觀規(guī)律,比如:先易后難的啟動(dòng)規(guī)律、階段性進(jìn)步的螺旋式規(guī)律。
掌握這些規(guī)律后,你就知道,學(xué)習(xí)是需要由易到難,分階段進(jìn)行的。我認(rèn)識(shí)很多朋友,一開始涉及嵌入式就在那倒騰著ARM9和Linux??筛冻龅呐Σ⑽词盏搅己玫男Ч?,甚至一些最基本的知識(shí)都沒有掌握。這種學(xué)習(xí)不但很辛苦,反而大大打擊了他的學(xué)習(xí)積極性。
所以,我給各位的建議是:平地起高樓,基礎(chǔ)要打牢!根深方能蒂固!
三
在應(yīng)用中學(xué)習(xí),在應(yīng)用中提高。一個(gè)對(duì)嵌入式普遍認(rèn)同的定義是:嵌入式是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件和硬件可裁剪,以適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、速度、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
從定義中可以看出,嵌入式是以應(yīng)用為中心的,在具體應(yīng)用的前提下有針對(duì)性的進(jìn)行軟硬件裁剪,從而達(dá)到某些技術(shù)指標(biāo)的嚴(yán)格要求。所以說,嵌入式是一門較高層次的應(yīng)用科學(xué)。需要我們?cè)趹?yīng)用中學(xué)習(xí)。
歐美的教育非常重視知識(shí)的應(yīng)用。理論教學(xué)與實(shí)踐教學(xué)緊密結(jié)合是德國職業(yè)教育“雙元制”教學(xué)非常突出的特點(diǎn)。德國的職業(yè)學(xué)校不僅實(shí)驗(yàn)實(shí)習(xí)設(shè)備先進(jìn)、實(shí)習(xí)工位充足,而且教師的實(shí)踐動(dòng)手能力強(qiáng)。他們?cè)诮虒W(xué)上特別重視從應(yīng)用的角度來幫助學(xué)生掌握知識(shí),培養(yǎng)學(xué)生的能力。
我們的教育是平面的、單一的,歐美的教育是動(dòng)態(tài)的,多元的。他們教育首先是平面、靜態(tài)的,然后再到立體、動(dòng)態(tài)的,最后到實(shí)物觀察討論,這種多元的教學(xué)方式,能讓學(xué)生把理論與實(shí)踐緊密結(jié)合起來。
在應(yīng)用中學(xué)習(xí),在應(yīng)用中提高,非常重要! 本人是從單片機(jī)轉(zhuǎn)行過來的,我學(xué)了半年的ARM9+Linux。到頭來什么都不會(huì)(也許是個(gè)人能力問題),后來在老師的建議下?lián)Q成ARM7+ucos II才有起色,現(xiàn)在我的基礎(chǔ)已經(jīng)牢固,正在向高端進(jìn)軍。
-
ARM
+關(guān)注
關(guān)注
134文章
9094瀏覽量
367539 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19123瀏覽量
305147
原文標(biāo)題:困擾ARM嵌入式初學(xué)者的若干問題
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論