|
嵌入式新手該先學(xué)C語(yǔ)言還是先學(xué)匯編?這是一個(gè)非常有爭議的問(wèn)題。而目前C語(yǔ)言已漸漸深入了,有意向學(xué)習嵌入式的不少,但是疑問(wèn)是,學(xué)嵌入式能不能只用C 寫(xiě)程序?
觀(guān)點(diǎn)1:匯編,只是一個(gè)語(yǔ)言工具。你要學(xué)習的,其實(shí)是ARM。
想要搞精、搞深,匯編和計算機系統知識是必須的。尤其是對于底層嵌入式系統工程師來(lái)說(shuō),匯編是必須要掌握的。
首先系統啟動(dòng)、上電代碼都是匯編,匯編不掌握,你如何知道系統是如何啟動(dòng)的?
想深入鏈接C語(yǔ)言的函數是如何調用的,參數是如何傳遞的,想了解指針的本質(zhì)、函數名的本質(zhì),就要深入匯編級代碼,通過(guò)反匯編,看底層指令是如何對C語(yǔ)言的高級特性進(jìn)行處理的,這都需要匯編語(yǔ)言的功底。掌握匯編,是成為底層系統工程師、牛逼工程師的必備技能。
另外,匯編沒(méi)那么恐怖,也就是那十幾個(gè)常用的命令,再加上配套的偽指令,基本程序結構,半天就差不多了。與其花半天時(shí)間在這里糾結要不要學(xué),不如趕緊學(xué),技不壓身。當然,學(xué)習匯編之前,你還要對CPU處理器架構、寄存器有一個(gè)了解,你要知道,匯編程序都是跟這些寄存器打交道的。學(xué)ARM匯編的話(huà),需要掌握ARM處理器的基本架構、不同模式下的寄存器配置。了解之后,再去學(xué)習匯編,你會(huì )發(fā)現,你學(xué)習的哪里是匯編?學(xué)習的明明是ARM嘛!
匯編,只是一個(gè)語(yǔ)言工具,一些助記符而已。你要學(xué)習的,其實(shí)是ARM。
觀(guān)點(diǎn)2:先學(xué)習C語(yǔ)言
一個(gè)合格的硬件工程師,應該都學(xué),我推薦你先學(xué)習C語(yǔ)言,因為匯編入手太慢,寫(xiě)程序要以C為主,需要高速的或者底層的操作用內嵌匯編的方式完成。但是匯編和C同樣重要,相互配合,缺一不可!
匯編的重要性:
幫助你從根本上徹底和完全了解芯片的結構和性能,以及工作原理,如何使用。
在小的芯片上實(shí)現小的系統。
系統的調試。盡管你使用了高級語(yǔ)言,在調試中可以幫助你了解C代碼的性能和特點(diǎn),甚至找到使用開(kāi)發(fā)平臺本身的BUG。
編寫(xiě)時(shí)序要求嚴格的代碼,實(shí)現一些高級語(yǔ)言不易實(shí)現的功能。
從目前的技術(shù)和應用發(fā)展來(lái)看,對工程師的硬件要求越來(lái)越高。以我的觀(guān)點(diǎn),作為單片機和嵌入式系統開(kāi)發(fā)真正的高手,應具備以下幾個(gè)方面的綜合能力:
1.硬件:模擬、數字電路的雄厚基礎,了解跟蹤現在市場(chǎng)上的各種元器件的應用和發(fā)展,能夠進(jìn)行可靠、完善的電路設計以及PCB的設計。
2.軟件:不僅需要精通匯編語(yǔ)言,也要精通C語(yǔ)言,要有好的單片機系統程序設計理念和能力,學(xué)校中學(xué)的那些分支結構、循環(huán)結構等基本原理遠遠不夠!要有基本的數據結構的知識。否則你如何設計實(shí)現USB HOST讀U盤(pán)的接口? 如何實(shí)現嵌入式WEB系統? 以及如何使用真正了解和使用RTOS? 具備計算機網(wǎng)絡(luò )和數字通信的基礎知識,從根本上熟悉和了解各種協(xié)議的構造和實(shí)現,如:UART、RS232、SPI、I2C、USB、 IEEE802、TCP/IP等。
3.計算機應用的高手
4.熟練閱讀英文資料:熱愛(ài)和喜歡電子技術(shù),具備刻苦精神、踏踏實(shí)實(shí),不弄虛作假,不浮躁。多動(dòng)手,勤實(shí)踐。有強烈的專(zhuān)業(yè)和鉆研精神。最后一條最重要!
好的學(xué)習方法,無(wú)論學(xué)習什么學(xué)科,掌握哪種技能,都需要要有好的學(xué)習方法作為支撐,當然嵌入式也不例外,通過(guò)現場(chǎng)面授學(xué)習資源可以更快掌握。
你值得來(lái)學(xué)習-----信盈達 咨詢(xún)宋老師Tel17317951908 QQ3524659088
|
|