嵌入式新手該先學C語言還是先學匯編?這是一個非常有爭議的問題。而目前C語言已漸漸深入了,有意向學習嵌入式的不少,但是疑問是,學嵌入式能不能只用C 寫程序?
觀點1:匯編,只是一個語言工具。你要學習的,其實是ARM。想要搞精、搞深,匯編和計算機系統知識是必須的。尤其是對于底層嵌入式系統工程師來說,匯編是必須要掌握的。
首先系統啟動、上電代碼都是匯編,匯編不掌握,你如何知道系統是如何啟動的?
想深入鏈接C語言的函數是如何調用的,參數是如何傳遞的,想了解指針的本質、函數名的本質,就要深入匯編級代碼,通過反匯編,看底層指令是如何對C語言的高級特性進行處理的,這都需要匯編語言的功底。掌握匯編,是成為底層系統工程師、牛逼工程師的必備技能。
另外,匯編沒那么恐怖,也就是那十幾個常用的命令,再加上配套的偽指令,基本程序結構,半天就差不多了。與其花半天時間在這里糾結要不要學,不如趕緊學,技不壓身。當然,學習匯編之前,你還要對CPU處理器架構、寄存器有一個了解,你要知道,匯編程序都是跟這些寄存器打交道的。學ARM匯編的話,需要掌握ARM處理器的基本架構、不同模式下的寄存器配置。了解之后,再去學習匯編,你會發現,你學習的哪里是匯編?學習的明明是ARM嘛!匯編,只是一個語言工具,一些助記符而已。你要學習的,其實是ARM。觀點2:先學習C語言一個合格的硬件工程師,應該都學,我推薦你先學習C語言,因為匯編入手太慢,寫程序要以C為主,需要高速的或者底層的操作用內嵌匯編的方式完成。但是匯編和C同樣重要,相互配合,缺一不可!匯編的重要性:
幫助你從根本上徹底和完全了解芯片的結構和性能,以及工作原理,如何使用。
在小的芯片上實現小的系統。
系統的調試。盡管你使用了高級語言,在調試中可以幫助你了解C代碼的性能和特點,甚至找到使用開發平臺本身的BUG。
編寫時序要求嚴格的代碼,實現一些高級語言不易實現的功能。
從目前的技術和應用發展來看,對工程師的硬件要求越來越高。以我的觀點,作為單片機和嵌入式系統開發真正的高手,應具備以下幾個方面的綜合能力:1.硬件:模擬、數字電路的雄厚基礎,了解跟蹤現在市場上的各種元器件的應用和發展,能夠進行可靠、完善的電路設計以及PCB的設計。2.軟件:不僅需要精通匯編語言,也要精通C語言,要有好的單片機系統程序設計理念和能力,學校中學的那些分支結構、循環結構等基本原理遠遠不夠!要有基本的數據結構的知識。否則你如何設計實現USB HOST讀U盤的接口? 如何實現嵌入式WEB系統? 以及如何使用真正了解和使用RTOS? 具備計算機網絡和數字通信的基礎知識,從根本上熟悉和了解各種協議的構造和實現,如:UART、RS232、SPI、I2C、USB、 IEEE802、TCP/IP等。3.計算機應用的高手4.熟練閱讀英文資料:熱愛和喜歡電子技術,具備刻苦精神、踏踏實實,不弄虛作假,不浮躁。多動手,勤實踐。有強烈的專業和鉆研精神。最后一條最重要!
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304825 -
C語言
+關注
關注
180文章
7604瀏覽量
136695
原文標題:真正的嵌入式開發高手該會些啥?
文章出處:【微信號:edn-china,微信公眾號:EDN電子技術設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論