arm開發到底如何去學?
時間:2019-03-19 來源:華(hua)清遠見
對于arm開發來說其實(shi)很多初(chu)學者(zhe)會遇(yu)到(dao)很多的(de)(de)問(wen)題(ti),比如說arm到(dao)底指的(de)(de)是(shi)什么?arm的(de)(de)處理(li)器(qi)芯(xin)片應該如何(he)來分類?當前應用比較多的(de)(de)arm處理(li)器(qi)芯(xin)片究竟有(you)哪些?等(deng)等(deng)。對(dui)于(yu)初(chu)學者(zhe)來說有(you)一(yi)些問(wen)題(ti)是(shi)一(yi)定要注意(yi)的(de)(de),因為在猶豫的(de)(de)時候可能就(jiu)會選(xuan)擇錯的(de)(de)思路。一(yi)起來看(kan)看(kan)arm開發該如何(he)去學。
初(chu)學(xue)者必須要一(yi)開始就掌握arm開發體(ti)系結構域匯編(bian)指令(ling)嗎?
在我(wo)們身邊(bian)的(de)(de)(de)(de)很(hen)多(duo)(duo)ARM初(chu)學(xue)者,剛開(kai)始就抱著很(hen)多(duo)(duo)有關ARM體(ti)系結構(gou)(gou)的(de)(de)(de)(de)書籍開(kai)始苦讀(du),更有很(hen)多(duo)(duo)初(chu)學(xue)者,在很(hen)多(duo)(duo)具(ju)體(ti)內(nei)容上(shang)總是(shi)鉆牛角尖,花(hua)費了(le)大量(liang)時間在ARM匯編指(zhi)令上(shang),雖然(ran)對一些ARM的(de)(de)(de)(de)相(xiang)關概念(nian)會比較(jiao)了(le)解,但與真正的(de)(de)(de)(de)具(ju)體(ti)應用(yong)還是(shi)相(xiang)差很(hen)遠,有很(hen)多(duo)(duo)初(chu)學(xue)者有這(zhe)樣的(de)(de)(de)(de)體(ti)會,在學(xue)完(wan)ARM體(ti)系結構(gou)(gou)之(zhi)后,對ARM的(de)(de)(de)(de)應用(yong)還是(shi)無從下手,也正因(yin)(yin)為這(zhe)個原因(yin)(yin),很(hen)多(duo)(duo)人就放棄了(le)ARM嵌(qian)入式開(kai)發(fa)的(de)(de)(de)(de)學(xue)習。
當(dang)然也不是不主張看(kan)ARM體(ti)系(xi)結構(gou)(gou)的(de)(de)相(xiang)關書籍,但(dan)關鍵在于(yu)怎么看(kan)、看(kan)到(dao)什么程度,根(gen)據相(xiang)關經驗來看(kan),ARM初學者對(dui)于(yu)ARM體(ti)系(xi)結構(gou)(gou)的(de)(de)相(xiang)關知識(shi)只(zhi)(zhi)需要(yao)做到(dao)了解程度就(jiu)可(ke)(ke)(ke)以(yi)(yi)(yi)了,對(dui)于(yu)ARM的(de)(de)匯編(bian)可(ke)(ke)(ke)以(yi)(yi)(yi)完全(quan)不用記憶,只(zhi)(zhi)需要(yao)看(kan)懂就(jiu)可(ke)(ke)(ke)以(yi)(yi)(yi),隨著初學者對(dui)ARM更深(shen)入地學習,有關ARM體(ti)系(xi)結構(gou)(gou)與匯編(bian)指(zhi)令的(de)(de)知識(shi)以(yi)(yi)(yi)后可(ke)(ke)(ke)能(neng)會(hui)反復出現,遇到(dao)時可(ke)(ke)(ke)以(yi)(yi)(yi)再(zai)通過有針對(dui)性的(de)(de)看(kan)重點內容及相(xiang)關知識(shi)點,相(xiang)信會(hui)取得比較好的(de)(de)效(xiao)果。

對于初學者來說是需要選擇(ze)適合arm的軟件集成開發環境
目前,流行的ARM軟件(jian)集成(cheng)開(kai)(kai)(kai)發(fa)(fa)環(huan)(huan)境(jing)有(you)ADS1.2、Keil uV3和(he)IAR等。對于51單(dan)片(pian)機(ji)應用開(kai)(kai)(kai)發(fa)(fa)工程師來(lai)說(shuo),Keil開(kai)(kai)(kai)發(fa)(fa)環(huan)(huan)境(jing)應該(gai)應用得比較(jiao)熟練,若采用Keil uV3進(jin)行ARM軟件(jian)開(kai)(kai)(kai)發(fa)(fa),應該(gai)可以快速上(shang)手(shou)。但對于初(chu)學者(zhe)來(lai)講,并不(bu)建議選擇Keil uV3進(jin)行ARM軟件(jian)開(kai)(kai)(kai)發(fa)(fa),對于初(chu)學者(zhe)應該(gai)明(ming)白和(he)了解其原因:1、Keil uV3是第三方ARM軟件(jian)集成(cheng)開(kai)(kai)(kai)發(fa)(fa)環(huan)(huan)境(jing),目前支持的ARM芯片(pian)種(zhong)類還(huan)不(bu)多,所帶的編(bian)譯(yi)器也并不(bu)完善;2、由于Keil uV3為(wei)了方便(bian)用戶的開(kai)(kai)(kai)發(fa)(fa),提供了現成(cheng)的ARM啟動文(wen)件(jian),換句(ju)話(hua)說(shuo),它屏蔽了ARM開(kai)(kai)(kai)發(fa)(fa)中的一個(ge)重要內容——啟動代碼的編(bian)寫(xie),而這一點對初(chu)學者(zhe)來(lai)說(shuo)應該(gai)是非常重要的內容。
初(chu)學者(zhe)拿到開發板之后不(bu)要盲(mang)目的進行(xing)實驗
對(dui)于(yu)ARM初學(xue)者來(lai)講,在拿到(dao)開(kai)發板之后,由于(yu)其好奇心恨不得一口(kou)氣就(jiu)把所有的(de)(de)實驗做完,對(dui)于(yu)這樣的(de)(de)做法我們是(shi)(shi)堅決的(de)(de)反對(dui),對(dui)于(yu)很多(duo)初學(xue)者來(lai)講,沒(mei)有一個明確的(de)(de)目(mu)標,可(ke)能很多(duo)實驗都(dou)是(shi)(shi)做不出結(jie)果(guo)的(de)(de),甚(shen)至(zhi)會損壞開(kai)發板。
學(xue)ARM必(bi)需懂(dong)得嵌入式操作(zuo)系統
很(hen)多ARM初(chu)學(xue)(xue)者(zhe)(zhe)有一(yi)(yi)個(ge)錯誤的(de)概念——學(xue)(xue)ARM必搞(gao)嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong)。認為在ARM上跑嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong)就代表技(ji)術先進、產(chan)(chan)品檔次高的(de)觀點(dian)(dian)絕對是(shi)(shi)謬論。持這(zhe)種觀點(dian)(dian)的(de)人一(yi)(yi)定(ding)是(shi)(shi)沒有做過(guo)(guo)具體的(de)產(chan)(chan)品開(kai)(kai)發。一(yi)(yi)個(ge)嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式產(chan)(chan)品是(shi)(shi)否需(xu)要(yao)跑嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong),是(shi)(shi)由(you)很(hen)多因素決定(ding)的(de),例如,產(chan)(chan)品的(de)功能需(xu)求、開(kai)(kai)發成本、開(kai)(kai)發周期等都是(shi)(shi)需(xu)要(yao)綜合考慮(lv)的(de)。對于ARM的(de)初(chu)學(xue)(xue)者(zhe)(zhe)來(lai)說,前期我們并不建議使用嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong),而應(ying)當把所(suo)有配套實驗(yan)都熟(shu)練掌握(wo)之后,可以(yi)考慮(lv)學(xue)(xue)習一(yi)(yi)個(ge)具體的(de)嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong)。對于初(chu)學(xue)(xue)者(zhe)(zhe)來(lai)講,我們推(tui)薦源(yuan)碼公開(kai)(kai)的(de)uC/OS-II嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong),之所(suo)以(yi)推(tui)薦是(shi)(shi)因為這(zhe)樣的(de)方式方法很(hen)容易通(tong)過(guo)(guo)閱讀源(yuan)碼達到徹底掌握(wo)嵌(qian)(qian)(qian)入(ru)(ru)(ru)(ru)式操(cao)作(zuo)(zuo)系(xi)(xi)(xi)統(tong)的(de)目的(de)。
要(yao)(yao)充分利用網絡資(zi)源,要(yao)(yao)有(you)不(bu)恥下問的學習心態
我們(men)已經(jing)進入了(le)信息大(da)爆炸的時(shi)代,很(hen)多知識都可(ke)以通過(guo)網(wang)絡(luo)(luo)(luo)及時(shi)地獲得。在學(xue)習(xi)的過(guo)程中遇到困(kun)難時(shi),可(ke)以通過(guo)網(wang)絡(luo)(luo)(luo)獲得幫(bang)助,只要(yao)我們(men)虛心好(hao)學(xue),不恥下問(wen)(當然要(yao)注意在網(wang)絡(luo)(luo)(luo)上(shang)尋求(qiu)別人(ren)幫(bang)助的方式方法),一定(ding)會得到很(hen)多好(hao)心人(ren)的幫(bang)助,使自己每天都有所提高。
大家(jia)應該都非常清楚“學(xue)無止(zhi)境”的含義
學(xue)(xue)習(xi)(xi)ARM嵌入式(shi)開發(fa),尤其(qi)對(dui)于初學(xue)(xue)者而(er)言,不(bu)應該過(guo)(guo)早地(di)、過(guo)(guo)多地(di)將精力用(yong)在嵌入式(shi)系統移植、Linux內(nei)核的(de)(de)(de)研究(jiu)和學(xue)(xue)習(xi)(xi)上,這些(xie)誘人的(de)(de)(de)“熱點”很容易使初學(xue)(xue)者迷失方向(xiang),進而(er)忽視對(dui)基礎知識的(de)(de)(de)深(shen)入學(xue)(xue)習(xi)(xi),到(dao)頭來(lai)說得(de)頭頭是(shi)(shi)道,可真的(de)(de)(de)干起(qi)來(lai)卻(que)離(li)實(shi)際(ji)的(de)(de)(de)需求(qiu)差(cha)得(de)太遠,作(zuo)為初學(xue)(xue)者一定要明白(bai)學(xue)(xue)習(xi)(xi)的(de)(de)(de)終目的(de)(de)(de)是(shi)(shi)為了滿(man)足應用(yong)的(de)(de)(de)需求(qiu),只要方法得(de)當,掌握嵌入式(shi)開發(fa)應用(yong)技術其(qi)實(shi)不(bu)是(shi)(shi)什(shen)么難事。

