华清远见25072班单片机基础学习day1
重点内容:
一、单片机相关概念
机器码
硬件能够识别的以0和1组成的编码格式
汇编指令
汇编指令:就是一条具备特殊格式+特殊功能的指令
由多条汇编指令组成的文件就是汇编文件
汇编指令集
汇编指令集就是多条不同功能的汇编指令组成的集合 汇编指令集的分类:ARM汇编指令集、x86汇编指令集、Mips汇编指令集、RISC-V汇编指令集...
架构
架构:就是汇编指令集的别名,不同的汇编指令集对应了不同的架构
架构的分类:ARM架构、x86架构、RISC-V架构....
内核
内核就是通常意义上的CPU
ARM公司设计的内核/CPU/处理器:
Cortex-M系列的内核:低功耗内核,一般应用在低功耗设备上 Cortex-R系列的内核:实时性的内核,一般应用在对实时性处理要求比较高的设备
Cortex-A系列的内核:高性能内核,一般应用在手机/电脑上
Cortex-X系列的内核:超高性能内核,一般应用在手机/电脑上
CPU:中央处理单元(中央处理器)
MCU:微控制单元(微控制器)
MPU:微处理单元(微处理器)
SOC(system on-chip):片上系统
MCU:微控制单元(微控制器) 低性能处理器,处理器的主频一般控制在以MHz为单位,主要应用在嵌入式设备中 MCU可以理解为就是单片机,MCU一般无法搭载大型的操作系统
MPU:微处理单元(微处理器) 高性能处理器,处理器的主频一般控制器在以GHz为单位,主要应用在高端电子产品中 MPU一般可以搭载大型的操作系统
二、精简指令集和复杂指令集
复杂指令集中指令的周期和指令的宽度是不固定的
x86汇编指令集属于复杂指令集
指令的周期:执行一条汇编指令需要的时间
指令的宽度:一条汇编指令在内存空间中的大小(单位为字节) 精简
指令集中指令的周期和指令的宽度是固定的
ARM汇编指令集、RISC-V汇编指令集、Mips汇编指令集、PowerPC汇编指令集....都是精简指令集
ARM汇编指令集的范围很广,包含了不同版本的ARM汇编指令集,也存在很多不同版本的子集
Thumb汇编指令集是ARM汇编指令集下的一种子集
Thumb汇编指令,也属于精简指令集,每条指令的宽度默认为2个字节
ARM汇编指令集,也属于精简指令集,每条指令的宽度默认为4个字
三、ARM处理器的工作模式
Cortex-M系列处理的工作模式
Cortex-M系列处理的工作模式: 1、线程模式(运行主函数逻辑) 2、异常模式
Cortex-A系列处理的工作模式
Cortex-A系列处理的工作模式:
ARM-v7架构设计的处理器:
1、非特权模式:User模式(用户模式)
2、特权模式:
2.1 非异常模式:SYS模式(系统模式)
2.2 异常模式:
2.2.1 IRQ模式(普通中断异常模式)
2.2.2 FIQ模式(快速中断异常模式)
2.2.3 SVC模式(超级管理异常模式)
2.2.4 ABT模式(访问中止异常模式)
2.2.5 UND模式(未定义异常模式)
ARM-v8架构设计的处理:
多两种工作模式:MON模式(安全监管模式)、HYP模式(虚拟化技术模式)
四、寄存器组织(核内)

1、每个小方块都是一个核内寄存器,每个内核寄存器占4个字节的大小
2、R0-R12、R13(SP)、R14(LR)、R5(PC)、CPSR、SPSR都是寄存器的编号
3、白色底的寄存器是公有寄存器,蓝色底的寄存器是私有寄存器
公有寄存器在不同工作模式下,都可以访问
私有寄存器只有在对应工作模式下,才可以被访问
4、实体黑色编号的寄存器是实际存在的寄存器,虚体灰色编号的寄存器是不存在寄存器
5、公有寄存器有17个、私有寄存器有26个 = 人为可以访问并操纵的寄存器数量为43个
五、特殊功能寄存器
SP寄存器
R13 --- SP --- 栈指针寄存器 --- the stack pointer register
作用:用于保存栈空间的某片内存空间地址
LR寄存器
R14 --- LR --- 链接寄存器 --- the linking register
作用:用于保存函数的返回地址
PC寄存器
R15 --- PC --- 程序计数寄存器 --- the program counting register
作用:用于程序的执行顺序计数(用于保存下一条需要执行汇编指令的地址)
小总结
SP栈指针寄存器 - 用于保存栈空间的某片内存空间地址 - 可以通过指针进行压栈/出栈操作
LR链接寄存器 - 用于保存函数的返回地址 - 可以实现函数的返回
PC程序计数寄存器 - 用于保存下一条需要执行汇编指令的地址 - 可以实现程序的顺序执行
上述三个寄存器结合到一起使用,才可以实现c语言语句的正常执行
CPSR寄存器
CPSR --- 当前程序状态寄存器 --- the current program state register
作用:用于保存当前程序的状态
程序的状态:程序处于哪种工作模式下执行、程序的运行状态是否合法、程序导致变量进行+-运算是否出现进位/借位........
SPSR寄存器
SPSR --- 备份程序状态寄存器 --- the saved program state register
作用:用于备份当前程序的状态 CPSR和SPSR寄存器就是为了实现不同工作模式之间的切换
SPSR寄存器
SPSR --- 备份程序状态寄存器 --- the saved program state register
作用:用于备份当前程序的状态 CPSR和SPSR寄存器就是为了实现不同工作模式之间的切换
CPSR寄存器的高4位和低8位
N[31]位:负数标志位(做减法操作时)
当汇编指令的执行结果为负数时,硬件会将N位置1;否则,硬件会将N位清0
Z[30]位:零标志位(做比较操作时)
当汇编指令的执行结果为0时,硬件会将Z位置1;否则,硬件会将Z位清0
C[29]位:进位/借位标志位
(做加法操作时)当汇编指令的执行结果产生进位时,硬件会将C位置1;否则,硬件会将C位清0
(做减法操作时)当汇编指令的执行结果产生借位时,硬件会将C位清0;否则,硬件会将C位置1
V[28]位:符号位
当汇编指令的执行结果对符号位产生影响时,硬件会将V位置1;否则,硬件会将V位清0
I[7]位:IRQ屏蔽位
I = 0时,IRQ普通中断异常模式不被屏蔽(当前处理器可以进入到IRQ模式下)
I = 1时,IRQ普通中断异常模式被屏蔽(当前处理器无法进入到IRQ模式下)
F[6]位:FIQ屏蔽位
F = 0时,FIQ快速中断异常模式不被屏蔽(当前处理器可以进入到FIQ模式下)
F = 1时,FIQ快速中断异常模式被屏蔽(当前处理器无法进入到FIQ模式下)
T[5]位:状态位
T = 0时,当前处理器处于ARM状态(当前处理器使用ARM汇编指令集,Cortex-A/X系列的内核)
T = 1时,当前处理器处于Thumb状态(当前处理器使用Thumb汇编指令集,Cortex-M系列的内核)
M[4:0]位:模式位

作业:
1、思维导图:



2.牛客网刷题

