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