嵌入式工程师到底要不要学习ARM汇编指令?

yumo6661个月前 (05-11)技术文章10

嵌入式工程师到底要不要学习ARM汇编指令?

网上搜索这个问题,答案很多,大部分的建议是不要学汇编,只要学C语言。

而一口君作为一个十几年经验的驱动工程师,个人认为,汇编语言还是需要掌握的,想要搞精、搞深,汇编和计算机系统知识是必须的。

我们来列举一些问题

  1. 系统是如何启动的?
  2. 链接C语言的函数是如何调用的,参数是如何传递的?
  3. 如何使能关闭中断?
  4. 多核处理器是如何分配进程到某个核上运行的?
  5. MMU是如何实现的?
  6. 中断产生之后,cpu是如何处理的?
  7. 系统调用是如何实现的?

这些问题要想搞懂清楚就必须要搞懂汇编代码,搞懂arm架构。 系统启动、上电代码都是汇编,汇编不掌握,你如何知道系统是如何启动的? 想了解指针的本质、函数名的本质,就要深入汇编级代码,通过反汇编,看底层指令是如何对C语言的高级特性进行处理的,这都需要汇编语言的功底。

掌握汇编,是成为底层系统工程师、NB工程师的必备技能

另外,汇编没那么恐怖,也就是那十几个常用的命令,再加上配套的伪指令,基本程序结构,半天就差不多了。与其花半天时间在这里纠结要不要学,不如赶紧学,技不压身。

当然,学习汇编之前,你还要对CPU处理器架构、寄存器有一个了解,你要知道,汇编程序都是跟这些寄存器打交道的。 学ARM汇编的话,需要掌握ARM处理器的基本架构、不同模式下的寄存器配置。

最终你会发现,你学习的哪里是汇编?学习的明明是ARM嘛!

汇编,只是一个语言工具,一些助记符而已。

「我们要学习的,其实是ARM」

ARM文章计划

一口君为了让大家更好的更快的学习ARM,根据自己多年研发和教学经验,将ARM的知识点逐步分解,按照一定顺序讲解,最终分解成十几篇文章。

一口君对网上铺天盖地的资料进行了详细的梳理,内容设置上可以说是奶妈式的讲解,,大家只需要根据我的文章,按部就班的学习,就能够达到掌握ARM汇编,真正的是从0开始学ARM汇编。


0.到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】

1. 从0开始学ARM-安装Keil MDK uVision集成开发环境

2. 从0开始学ARM-CPU原理,基于ARM的SOC讲解

3. 从0开始学ARM-ARM模式、寄存器、流水线

4. 从0开始学ARM-ARM指令,移位、数据处理、BL、机器码

5. 从0开始学ARM-MRS、MSR、寻址操作、原子操作原理

6. 从0开始学ARM-异常、异常向量表、swi

7. 从0开始学ARM-GNU伪指令

8. 从0开始学ARM-混合汇编

9. 从0开始学ARM-GPIO、LED两种驱动编写方法

10. 从0开始学ARM-基于Exynos4412的pwm详解

11. 从0开始学ARM-基于Exynos4412中断详解以及key裸机程序编写

12. 基于ARM UART裸机驱动详解

13. 从0开始学ARM-exynos4412-RTC裸机程序编写

14. 从0开始学ARM-exynos4412-看门狗裸机程序编写

15. 从0开始学ARM-位置无关码

16.一文搞懂ADC裸机和基于Linux驱动编写方法

17.I2C时序详解,基于ARM Cortex-A9的i2c 外设裸机驱动程序编写方法

18.SPI协议,spi转can,MCP2515裸机驱动详解

19. uboot代码启动分析


有的文章已经发布,有些文章还在审查中,还有一些文章还在紧张的编写中,本篇文章持续更新。

大家想学习ARM,请关注 【一口Linux】,后续文章会慢慢为大家呈上。

相关文章

原来汇编中的循环是这么玩儿的(汇编怎么实现循环)

汇编系列其实也在一直更新,只不过更新的频率会挺慢的。。。由于白天一直忙于工作,空闲时间还要看书、学习各种技术栈,早上也要抽时间早期健身,晚上回家还要陪家人 + 学习,时间安排的满满当当,所以我就慢慢写...

01程序编译过程分析,预处理,编译,汇编,链接

前言 我们大多数开发人员在编写完程序之后都会通过相应的IDE执行编译的操作,将所编写的源代码转换成计算机可以识别并执行的文件。这个从源代码转换成可执行文件的过程有相应的IDE帮助我们完成,很多朋友对于...

万字详文:Golang 汇编入门知识总结,看这一篇就够了

作者:ivansli,腾讯 IEG 运营开发工程师在深入学习 Golang 的 runtime 和标准库实现的时候发现,如果对 Golang 汇编没有一定了解的话,很难深入了解其底层实现机制。在这里整...

新手攻略!入门ARM必须要理解的22个常用概念

罗列了关于ARM的22个常用概念。包括一些使用注意事项、ARM启动代码设计、ARM处理器运行模式、ARM体系结构所支持的异常类型和一些基本操作方法等等。01ARM中一些常见英文缩写解释MSB:最高有效...

大神真闲传,又一款纯汇编撸成的操作系统:MenuetOS

这个世界从来都不缺大神,然而大神们除了拥有惊人发量这点过人之处外,可能更加鲜为人知的却是三个字:闲得蛋疼!没错,能称得上大神的多多少少有点吃饱了撑的,不过这只是我们外人看来的,作为大神他们从来不屑于我...

系统设计硬核知识(1)——操作系统的类型和结构

一、一个观点、两条线索。一个观点:以资源管理的观点来定义操作系统;从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。两条线索:如何管理计算机各类资源、控制程序的执行。现在讲...