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