學習嵌入式要(yao)學匯編還是C語(yu)言呢,看看高手怎么選
時間(jian):2018-07-03 來源:未知
對于學習嵌(qian)入(ru)式,很多人都會有(you)(you)疑問(wen),在開(kai)始學的(de)時(shi)候,在學匯(hui)編還(huan)是C語言上(shang)有(you)(you)了糾結,不(bu)知道學習哪個比較(jiao)好(hao),有(you)(you)很多爭(zheng)議,有(you)(you)的(de)人不(bu)會匯(hui)編,所以(yi)推C語言,而(er)反之一樣,那(nei)么(me)到底學什么(me)好(hao)呢(ni),在這里我(wo)給你(ni)解答,匯(hui)編和C語言都是你(ni)要學的(de)。從而(er)出現(xian)了下面(mian)2中觀點
1:匯(hui)(hui)(hui)編,只是(shi)一個語言工(gong)具。你要(yao)(yao)學習的,其(qi)實是(shi)ARM。想要(yao)(yao)搞(gao)精、搞(gao)深(shen),匯(hui)(hui)(hui)編和計算機系(xi)統知識是(shi)必須的。尤其(qi)是(shi)對于(yu)底層(ceng)嵌入式系(xi)統工(gong)程師來(lai)說,匯(hui)(hui)(hui)編是(shi)必須要(yao)(yao)掌(zhang)握(wo)的。
首先系統(tong)啟(qi)動、上電代碼都(dou)是(shi)(shi)匯編(bian),匯編(bian)不掌握,你(ni)如何知道(dao)系統(tong)是(shi)(shi)如何啟(qi)動的?
想(xiang)深(shen)入(ru)鏈(lian)接C語(yu)言(yan)的(de)函(han)數(shu)是如何(he)調用(yong)的(de),參(can)數(shu)是如何(he)傳(chuan)遞的(de),想(xiang)了(le)解指針的(de)本(ben)質(zhi)、函(han)數(shu)名的(de)本(ben)質(zhi),就要深(shen)入(ru)匯編(bian)級(ji)代碼,通(tong)過反匯編(bian),看底層(ceng)(ceng)指令是如何(he)對C語(yu)言(yan)的(de)高級(ji)特(te)性進行處理的(de),這都需要匯編(bian)語(yu)言(yan)的(de)功底。掌握匯編(bian),是成(cheng)為底層(ceng)(ceng)系統(tong)工(gong)程(cheng)師、牛(niu)逼工(gong)程(cheng)師的(de)必(bi)備(bei)技能(neng)。
另外,匯(hui)編(bian)(bian)沒那(nei)么恐怖,也就是那(nei)十幾(ji)個常(chang)用(yong)的(de)命令(ling)(ling),再加上配套(tao)的(de)偽指令(ling)(ling),基本程(cheng)序(xu)結構(gou),半(ban)(ban)天(tian)(tian)就差不多了。與其(qi)花半(ban)(ban)天(tian)(tian)時間在(zai)這(zhe)里糾結要(yao)(yao)不要(yao)(yao)學,不如趕(gan)緊學,技不壓身。當然,學習(xi)匯(hui)編(bian)(bian)之前,你(ni)還要(yao)(yao)對CPU處(chu)理(li)器(qi)(qi)架(jia)構(gou)、寄(ji)存器(qi)(qi)有一個了解,你(ni)要(yao)(yao)知道,匯(hui)編(bian)(bian)程(cheng)序(xu)都是跟這(zhe)些(xie)寄(ji)存器(qi)(qi)打交道的(de)。學ARM匯(hui)編(bian)(bian)的(de)話,需要(yao)(yao)掌握(wo)ARM處(chu)理(li)器(qi)(qi)的(de)基本架(jia)構(gou)、不同模式下的(de)寄(ji)存器(qi)(qi)配置。了解之后(hou),再去學習(xi)匯(hui)編(bian)(bian),你(ni)會(hui)發(fa)現,你(ni)學習(xi)的(de)哪里是匯(hui)編(bian)(bian)?學習(xi)的(de)明明是ARM嘛!匯(hui)編(bian)(bian),只是一個語言工具,一些(xie)助(zhu)記符而(er)已。你(ni)要(yao)(yao)學習(xi)的(de),其(qi)實是ARM。

2:就(jiu)現(xian)在的社會(hui)發展而看(kan),這兩者(zhe)是缺一不可的,C語言(yan)需(xu)(xu)要匯編(bian),匯編(bian)也需(xu)(xu)要C語言(yan),這樣(yang)才能更加的適應社會(hui)的需(xu)(xu)求,相(xiang)互配合,缺一不可!
來了解一下(xia)匯編的(de)重要(yao)性:
幫助你(ni)從根本上徹(che)底(di)和完(wan)全了解(jie)芯片的結構和性(xing)能,以及工作原理,如(ru)何使用。
在小(xiao)的(de)芯片上實現小(xiao)的(de)系統。
系統的(de)(de)調試。盡管你(ni)使(shi)用(yong)了高級語言,在調試中可以(yi)幫(bang)助你(ni)了解C代碼的(de)(de)性(xing)能(neng)和特點,甚至找到使(shi)用(yong)開發平臺(tai)本身的(de)(de)BUG。
編(bian)寫時序(xu)要(yao)求嚴格的代碼,實(shi)現(xian)一些高級語(yu)言(yan)不易實(shi)現(xian)的功能。
作(zuo)為一(yi)個高級嵌入式開(kai)發者,下(xia)面的這些能力是(shi)必備(bei)的
1.硬件:模擬(ni)、數字(zi)電路的(de)(de)(de)雄厚基礎,了解跟蹤現在市場上的(de)(de)(de)各種元器件的(de)(de)(de)應用和(he)發展,能夠進行(xing)可靠、完(wan)善的(de)(de)(de)電路設計以及PCB的(de)(de)(de)設計。
2.軟(ruan)件:不僅需要(yao)精通(tong)匯編語言,也要(yao)精通(tong)C語言,要(yao)有好的(de)單片(pian)機(ji)系統程序設(she)計理(li)念和(he)能力,學(xue)校中學(xue)的(de)那些分支(zhi)結構(gou)、循環結構(gou)等(deng)基(ji)本原理(li)遠遠不夠(gou)!要(yao)有基(ji)本的(de)數據(ju)結構(gou)的(de)知識。否則你(ni)如何(he)設(she)計實(shi)現USB HOST讀U盤的(de)接口? 如何(he)實(shi)現嵌入(ru)式(shi)WEB系統? 以(yi)及如何(he)使(shi)用真正了解和(he)使(shi)用RTOS? 具(ju)備計算機(ji)網絡和(he)數字通(tong)信(xin)的(de)基(ji)礎知識,從根本上(shang)熟悉(xi)和(he)了解各種協議的(de)構(gou)造(zao)和(he)實(shi)現,如:UART、RS232、SPI、I2C、USB、 IEEE802、TCP/IP等(deng)。
3.計(ji)算機(ji)應用(yong)的(de)高手(shou)
4.熟練閱讀英文資料(liao):熱愛和喜歡電子技術,具備刻苦精(jing)神、踏踏實實,不弄虛作假,不浮躁。多動手,勤實踐。有強烈(lie)的(de)專業和鉆研(yan)精(jing)神。最(zui)后一條最(zui)重(zhong)要(yao)!
所以你不要覺得(de)什么不應該學,匯編和C語言你可以都學習(xi)一下,對以后還是有很(hen)大的幫(bang)助的哦(e)。

