华清远见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位

N31位:负数标志位(做减法操作时)

当汇编指令的执行结果为负数时,硬件会将N位置1;否则,硬件会将N位清0

Z30位:零标志位(做比较操作时)

当汇编指令的执行结果为0时,硬件会将Z位置1;否则,硬件会将Z位清0

C29位:进位/借位标志位

(做加法操作时)当汇编指令的执行结果产生进位时,硬件会将C位置1;否则,硬件会将C位清0

(做减法操作时)当汇编指令的执行结果产生借位时,硬件会将C位清0;否则,硬件会将C位置1

V28位:符号位

当汇编指令的执行结果对符号位产生影响时,硬件会将V位置1;否则,硬件会将V位清0

I7位:IRQ屏蔽位

I = 0时,IRQ普通中断异常模式不被屏蔽(当前处理器可以进入到IRQ模式下)

I = 1时,IRQ普通中断异常模式被屏蔽(当前处理器无法进入到IRQ模式下)

F6位:FIQ屏蔽位

F = 0时,FIQ快速中断异常模式不被屏蔽(当前处理器可以进入到FIQ模式下)

F = 1时,FIQ快速中断异常模式被屏蔽(当前处理器无法进入到FIQ模式下)

T5位:状态位

T = 0时,当前处理器处于ARM状态(当前处理器使用ARM汇编指令集,Cortex-A/X系列的内核)

T = 1时,当前处理器处于Thumb状态(当前处理器使用Thumb汇编指令集,Cortex-M系列的内核)

M4:0位:模式位


作业:

1、思维导图:

2.牛客网刷题

相关推荐
Mr-pn-junction9 小时前
clk_gate
单片机·嵌入式硬件·fpga开发
xian_wwq11 小时前
【学习笔记】模型权重管理:Safetensors与私有化Hub(23/35)
笔记·学习
其实防守也摸鱼12 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
ctrl_v助手12 小时前
Halcon学习笔记2
人工智能·笔记·学习
YUS云生12 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
铅笔侠_小龙虾13 小时前
Rust 学习目录
开发语言·学习·rust
尼喃14 小时前
662K和65Z5三脚稳压芯片PW6566,附引脚定义与典型电路图
嵌入式硬件
渣渣灰飞14 小时前
MySQL 系统学习 第五阶段:企业级 MySQL 实战开发 第二章:RBAC 权限系统设计
android·学习·mysql
六bring个六15 小时前
open Harmony中分布式软总线的学习任务清单
分布式·学习·c/c++·open harmony
精神底层15 小时前
AI 学习笔记:研究方法的演变
人工智能·笔记·学习