华清远见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.牛客网刷题

相关推荐
大白的编程日记.2 小时前
【高阶数据结构学习笔记】高阶数据结构之B树B+树B*树
数据结构·笔记·学习
武陵悭臾3 小时前
Python应用开发学习:Pygame中实现切换开关及鼠标拖动连续填充功能
python·学习·程序人生·个人开发·pygame
inside8023 小时前
11月10日学习总结--numpy的基本操作
学习·numpy
想暴富,学技术3 小时前
AI提示词学习基础(一)
人工智能·学习
icy、泡芙4 小时前
移远 5G RG255AA-CN 调试
linux·单片机·5g
创业之路&下一个五年4 小时前
系统分析师,我又考后总结了。
学习·总结
ヾChen4 小时前
MySQL——增删改查操作
数据库·sql·物联网·学习·mysql
小蜜蜂爱编程4 小时前
逻辑回归学习笔记
笔记·学习·逻辑回归
时空自由民.4 小时前
MCU 内存栈介绍和内存段
单片机·嵌入式硬件