嵌入式工程師到底要不要學習ARM匯編指令?
網上搜索這個問題,答案很多,大部分的建議是不要學匯編,只要學C語言。
而一口君作為一個十幾年經驗的驅動工程師,個人認為,匯編語言還是需要掌握的,想要搞精、搞深,匯編和計算機系統知識是必須的。
我們來列舉一些問題
- 系統是如何啟動的?
- 鏈接C語言的函數是如何調用的,參數是如何傳遞的?
- 如何使能關閉中斷?
- 多核處理器是如何分配進程到某個核上運行的?
- MMU是如何實現的?
- 中斷產生之后,cpu是如何處理的?
- 系統調用是如何實現的?
這些問題要想搞懂清楚就必須要搞懂匯編代碼,搞懂arm架構。
系統啟動、上電代碼都是匯編,匯編不掌握,你如何知道系統是如何啟動的?
想了解指針的本質、函數名的本質,就要深入匯編級代碼,通過反匯編,看底層指令是如何對C語言的高級特性進行處理的,這都需要匯編語言的功底。
掌握匯編,是成為底層系統工程師、NB工程師的必備技能
另外,匯編沒那么恐怖,也就是那十幾個常用的命令,再加上配套的偽指令,基本程序結構,半天就差不多了。與其花半天時間在這里糾結要不要學,不如趕緊學,技不壓身。
當然,學習匯編之前,你還要對CPU處理器架構、寄存器有一個了解,你要知道,匯編程序都是跟這些寄存器打交道的。學ARM匯編的話,需要掌握ARM處理器的基本架構、不同模式下的寄存器配置。
最終你會發現,你學習的哪里是匯編?學習的明明是ARM嘛!
匯編,只是一個語言工具,一些助記符而已。
我們要學習的,其實是ARM。
ARM文章計劃
一口君為了讓大家更好的更快的學習ARM,根據自己多年研發和教學經驗,將ARM的知識點逐步分解,按照一定順序講解,最終分解成十幾篇文章。
一口君對網上鋪天蓋地的資料進行了詳細的梳理,內容設置上可以說是奶媽式的講解,,大家只需要根據我的文章,按部就班的學習,就能夠達到掌握ARM匯編,真正的是從0開始學ARM匯編。
有的文章已經發布,有些文章還在審查中,還有一些文章還在緊張的編寫中,標題個文章結構可能還會稍微調整,后面會不定期發布,敬請關注。