引言
笔者接触嵌入式领域软件开发已近五年,几乎用的都是 ARM Cortex M 内核系列的微控制器。在这五年期间,感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。
一、Arm指令集架构
ARM指令集架构简称为ISA,支持三种指令集:A64、A32、T32。
- A64指令集在 Armv8-A 中,用于支持64位架构
- A32指令集在 Armv6 和 Armv7架构中,称为ARM指令集
- T32指令集在 Armv6 和 Armv7架构中,称为Thumb指令集