文章目录

一、计算机指令集分类
CISC :Complex Instruction Set Computer 复杂指令集(X86)
特点:指令功能多、芯片复杂、成本高、体积大、功耗高
RISC :Reduced Instruction Set Computer 精简指令集
特点:指令功能少、芯片简单、成本低、体积小、功耗低
ARM:设计RISC精简指令集架构CPU(分版本)
授权------>半导体公司
stm32f103:st意法半导体生产 arm公司的CPU
二、ARM内核版本
早期:ARM+数字
ARM7 ARM9 ARM11
按领域加上前缀区分:
-
Cortex-A:Application 应用领域
- Cortex-A7(IMX6ULL、STM32MP157)
- Cortex-A5(早期智能机 摩托罗拉)
- Cortex-A8(Samsung Gaxlay Note)
- Cortex-A9(Samsung Exnoy 4412)
- 。。。。。。
- Cortex-A725(玄戒O1)
-
Cortex-R:Real-TIme 实时性领域(汽车电子)
-
Cortex-M:MCU 单片机领域
- Cortex-M3(stm32f103)
- Cortex-M4(stm32f407、STM32MP157)
三、ARM体系架构初了解

-
ALU:算数逻辑单元,完成算数运算
-
通用寄存器(内核):存放数据 (没有地址)一共16个(R0-R15)。
-
PC :programmer counter 程序计数器,指向当前程序正在执行指令的下一条指令。
三级流水线结构:pc取指令->译码器翻译指令->CPU执行指令(三者并行)
-
LR:Linked register 链接寄存器 保存函数返回地址
-
SP:stack pointer 栈指针寄存器,管理栈区空间
-
CPSR:current programmer status register 当前程序状态寄存器。程序运行到某一步时相关的状态(溢出、借位、进位)(特殊、异常状态)。
-
SPSR :save programmer status ragister 保存/备份程序状态寄存器
保存当异常(中断)发生时cpsr寄存器中的值。
-
MMU :memory management unit 内存管理单元:将程序中的虚拟地址转换为物理地址。

四、存储器架构
存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现"存储程序控制"的基础。
冯诺依曼架构:数据和指令共享一块存储空间;
哈弗架构:数据和指令拥有独立的存储空间.

高速缓冲存储器(Cache) :高速缓存,CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。


五、总线结构
单总线:内核和外设之间通过一组线连接通信;
双总线 (多总线 ):
速度快的外设------>内核:AHB总线:Advanced High Bus 先进高速总线(USB、网卡、RAM)
速度慢的外设------>内核:APB总线:Advanced Peripheral Bus 先进外设总线(GPIO、UART、TIMER)
六、典型的计算机主板

七、处理器修炼历程

八、SoC概念

九、汇编
处理器的编码是一串数字,比较难记,因此开发出了助记符号来降低开发难度提高效率,因此产生了汇编语言,又由于汇编语言的结构不是很清晰,因此人们采用了汇编语言来产生较高层次的语言(如C语言)。
编译的定义 :
编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。
编译器:用于编译的软件为编译器。
编译的四个步骤 :

交叉编译 :在一个平台编写编译程序,在另一个平台运行程序。

十、开发ARM程序常用的集成开发环境

十一、面向应用的ARM最小系统
最小系统 :能系统能够正常工作的最少器件构成的系统。

十二、RAM与ROM


nor flash :任何一个字节可以被寻址,带有地址总线和数据总线;
nand flash:块设备数据,以512byte为一块进行读写数据。
十三、ARM体系架构
处理器工作模式
ARM有7个基本工作模式:
User:非特权模式,大部分任务执行在这种模式;
FIQ:当一个高优先级(fast)中断产生时将会进入这种模式;
IRQ:当一个低优先级(normal)中断产生时将会进入这种模式;
Supervisor(svc模式:默认模式):当复位或软中断指令执行时将会进入这种模式;
Abort:当存取异常时会进入这种模式;
Undef:当执行到未定义指令时会进入这种模式;
System:使用和User模式相同寄存器集的特权模式;
Cortex-A特有模式:
HYP模式:在线调试;
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是特权模式。

注意:除去黑色的其他不同颜色代表当前模式独有的寄存器。
ARM 寄存器
ARM有37个32-Bits长的寄存器.
1 个用作PC( program counter)
1个用作CPSR(current program status register)
5个用SPSR(saved program status registers)
30个通用寄存器
Cortex体系结构下有40个32-Bits长的寄存器
Cortex-A多出3个寄存器,Monitor模式r13_mon,r14_mon,spsr_mon当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取.
程序状态寄存器

程序指针PC

十四、异常处理
中断向量表:本质是一个数组,数组中存放的是中断服务函数的入口地址;
异常向量表:本质是一个数组,数组中存放的是跳转到异常服务函数的指令。

tips:
1)说出ARM可以工作的模式名字。
2)ARM核有多少个寄存器?
3)什么寄存器用于存储PC和LR寄存器?
4)R13通常用来存储什么?
5)哪种模式使用的寄存器最少?
6)在Thumb指令集中,哪些寄存器处于Low group?
7)CPSR的哪一位反映了处理器的状态?
8)所有的Thumb指令采取什么对齐方式?
9)ARM有哪几个异常类型。
10)为什么FIQ的服务程序地址要位于0X1C?
11)在复位后,ARM处理器处于何种模式、何种状态?