ARM微控制器与嵌入式系统 基础知识

学习地址

2.1 基础概念

机械计算
图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01
冯诺依曼结构:运算器、控制器、存储器、输入设备、输出设备
模拟信号 连续 数字信号 离散 量化成若干个值 也会失真
一般通过电压高低标识01
ascll 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
学习氛围->认知不清

2.2 基础概念从晶体管到CPU

所有的东西都数字化
电压幅值代表0和1 逻辑 晶体管
在这里插入图片描述
ARM微控制器与嵌入式系统 基础知识_第1张图片
ARM微控制器与嵌入式系统 基础知识_第2张图片
ARM微控制器与嵌入式系统 基础知识_第3张图片

逻辑->加法 加法本身就是减法(补码)
ARM微控制器与嵌入式系统 基础知识_第4张图片
计算机中的记忆元件由触发器组成,而触发器只有两个状态。即“0”态和“1”态,所以每条信号线上只能传送一个触发器的信息。如果要在一条信号线上连接多个触发器,而每个触发器可以根据需要与信号线连通或断开,当连通时可以传送“0”或“1”,断开时对信号线上的信息不产生影响,就需要一个特殊的电路加以控制,此电路即为三态输出电路,又称为三态门。
加一个三态门 做成取地址的操作

ARM微控制器与嵌入式系统 基础知识_第5张图片
控制流量

组合逻辑 时序逻辑
ARM微控制器与嵌入式系统 基础知识_第6张图片
锁存器 存储 串联移位 乘除法

ARM微控制器与嵌入式系统 基础知识_第7张图片
边沿触发器

ARM微控制器与嵌入式系统 基础知识_第8张图片
ARM微控制器与嵌入式系统 基础知识_第9张图片
ARM微控制器与嵌入式系统 基础知识_第10张图片
概念CPU:16条指令 4bit位宽的CPU原型

助记符(mnemonic)是便于人们记忆、并能描述指令功能和指令操作数的符号,助记符是表明指令功能的英语单词或其缩写。汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

编程的本质:指令集的集合

2.3 概念CPU、微控制MCU和嵌入式系统

ARM微控制器与嵌入式系统 基础知识_第11张图片
ARM微控制器与嵌入式系统 基础知识_第12张图片
ARM微控制器与嵌入式系统 基础知识_第13张图片
ARM微控制器与嵌入式系统 基础知识_第14张图片
ARM微控制器与嵌入式系统 基础知识_第15张图片

2.4 八卦计算机史和创新

摩托罗拉
6502 乔布斯 任天堂 CPU 指令集
68001 32位
C80

2.5不同领域不同系列的嵌入式

ARM微控制器与嵌入式系统 基础知识_第16张图片
ARM微控制器与嵌入式系统 基础知识_第17张图片
ARM微控制器与嵌入式系统 基础知识_第18张图片
ARM微控制器与嵌入式系统 基础知识_第19张图片
ARM微控制器与嵌入式系统 基础知识_第20张图片
ARM微控制器与嵌入式系统 基础知识_第21张图片
ARM微控制器与嵌入式系统 基础知识_第22张图片
在这里插入图片描述

2.6 ARM的历史与MKL25Z128MCU

ARM微控制器与嵌入式系统 基础知识_第23张图片
powerPC IBM 摩托罗拉 苹果联合设计的 高性能 特别是高网络吞吐量和高性能汽车主控设备
6800后代 coldfire 军工 电表

ARM微控制器与嵌入式系统 基础知识_第24张图片
ARM微控制器与嵌入式系统 基础知识_第25张图片
ARM微控制器与嵌入式系统 基础知识_第26张图片
ARM微控制器与嵌入式系统 基础知识_第27张图片
苹果 飞机 单片机
ARM微控制器与嵌入式系统 基础知识_第28张图片
ARM微控制器与嵌入式系统 基础知识_第29张图片
ARM微控制器与嵌入式系统 基础知识_第30张图片
ARM微控制器与嵌入式系统 基础知识_第31张图片

3.1 CPU的基本结构和运行

在这里插入图片描述
ARM微控制器与嵌入式系统 基础知识_第32张图片
ARM微控制器与嵌入式系统 基础知识_第33张图片
ARM微控制器与嵌入式系统 基础知识_第34张图片
ALU的四要素
ARM微控制器与嵌入式系统 基础知识_第35张图片
flag标志位在哪里?
ARM微控制器与嵌入式系统 基础知识_第36张图片
操作数哪里来
ARM微控制器与嵌入式系统 基础知识_第37张图片
操作数在哪里?
ARM微控制器与嵌入式系统 基础知识_第38张图片
ARM微控制器与嵌入式系统 基础知识_第39张图片
运算结果放在哪里?
ARM微控制器与嵌入式系统 基础知识_第40张图片
运算结果存在哪里?
ARM微控制器与嵌入式系统 基础知识_第41张图片
谁掌控这一切的运行?
ARM微控制器与嵌入式系统 基础知识_第42张图片
获取指令:一个完整的CPU
ARM微控制器与嵌入式系统 基础知识_第43张图片
在这里插入图片描述

存储在存储器 时钟 时序电路的驱动下 挨个将指令放在控制单元
PC 程序计数器 保持下一条将要执行指令的地址

这些任然是图灵机的高度抽象

ARM微控制器与嵌入式系统 基础知识_第44张图片
ARM微控制器与嵌入式系统 基础知识_第45张图片

3.2.1 堆栈的概念

ARM微控制器与嵌入式系统 基础知识_第46张图片
ARM微控制器与嵌入式系统 基础知识_第47张图片
堆栈指针寄存器
ARM微控制器与嵌入式系统 基础知识_第48张图片
C语言的编译器会帮我们使用堆栈

a completely cpu
ARM微控制器与嵌入式系统 基础知识_第49张图片
数:寄存器 片外存储器
指令解析产生逻辑控单元
PC指针的指引下从程序的存储地址空间 一条一条拿来 解析控制数据的流向和来源 以及要做的运算内容
函数调用 嵌套调用 跳转 堆栈
ARM微控制器与嵌入式系统 基础知识_第50张图片
堆栈溢出
ARM微控制器与嵌入式系统 基础知识_第51张图片
用户程序进入内核火获得不应该有的权限

指令集 寄存器
ARM微控制器与嵌入式系统 基础知识_第52张图片
ARM微控制器与嵌入式系统 基础知识_第53张图片
总线
ARM微控制器与嵌入式系统 基础知识_第54张图片

3.2.2 头脑体操

ARM微控制器与嵌入式系统 基础知识_第55张图片
NOP 汇编语言的助记符
SP 堆栈指针寄存器
PC pc指针寄存器 读取下一条指令的地址
AB 片内的数据寄存器组
ARM微控制器与嵌入式系统 基础知识_第56张图片
堆栈的初始化
ARM微控制器与嵌入式系统 基础知识_第57张图片
压栈
ARM微控制器与嵌入式系统 基础知识_第58张图片
JSR 跳转到一个子函数SubFunc
ARM微控制器与嵌入式系统 基础知识_第59张图片
跳转 下一条指令的地址
ARM微控制器与嵌入式系统 基础知识_第60张图片
堆栈会覆盖,不会销毁
ARM微控制器与嵌入式系统 基础知识_第61张图片
RTS从子函数返回
ARM微控制器与嵌入式系统 基础知识_第62张图片

ARM微控制器与嵌入式系统 基础知识_第63张图片
ARM微控制器与嵌入式系统 基础知识_第64张图片
交换 1微妙不到就可以完成

3.3.1 ARM的体系架构

ARM微控制器与嵌入式系统 基础知识_第65张图片
ARM微控制器与嵌入式系统 基础知识_第66张图片
R0-R12 通用
R13 堆栈
R14 函数调用 子函数 返回地址
R15 PC 程序指令地址
ARM微控制器与嵌入式系统 基础知识_第67张图片
xPSR 保持各种CPU的设置状态 便于读写
PRIMASK 中断的开和关的
CONTROL CPU的工作模式
FAULTMASK 不可屏蔽中断的开和关 BASEPRI 按优先级关闭中断(M3 M4才有)
ARM微控制器与嵌入式系统 基础知识_第68张图片
32bit 程序状态寄存器 各种状态指令跳转的依据
ARM微控制器与嵌入式系统 基础知识_第69张图片
优先级控制寄存器
ARM微控制器与嵌入式系统 基础知识_第70张图片
CPU的状态 用户态还是特权态
ARM微控制器与嵌入式系统 基础知识_第71张图片
堆栈寄存器指向两个区域:操作系统内核 用户程序 任务跑飞的时候不会使操作系统崩溃
ARM微控制器与嵌入式系统 基础知识_第72张图片
进程模式:mian函数
句柄模式:进中断出中断
M3/M4 分用户态 内核态
ARM微控制器与嵌入式系统 基础知识_第73张图片

3.3.2 头脑体操

32bit
ARM微控制器与嵌入式系统 基础知识_第74张图片
movs r4,#18 把18存到r4寄存器 #代表十进制
ARM微控制器与嵌入式系统 基础知识_第75张图片
ARM微控制器与嵌入式系统 基础知识_第76张图片
ARM微控制器与嵌入式系统 基础知识_第77张图片
ARM微控制器与嵌入式系统 基础知识_第78张图片
ARM微控制器与嵌入式系统 基础知识_第79张图片
一级调用堆栈没有用 LR:末位为0 切换到38指令集 末位为1切换到arm指令集 返回0810(偶数有效)及下一位指令所在地址
ARM微控制器与嵌入式系统 基础知识_第80张图片
ARM微控制器与嵌入式系统 基础知识_第81张图片
pop 弹出一个置给r4寄存器
堆栈的特性 用来做数据交换
ARM微控制器与嵌入式系统 基础知识_第82张图片
ARM微控制器与嵌入式系统 基础知识_第83张图片

3.4.1 中断的概念和机制

ARM微控制器与嵌入式系统 基础知识_第84张图片
中断和轮询
ARM微控制器与嵌入式系统 基础知识_第85张图片
什么是中断
ARM微控制器与嵌入式系统 基础知识_第86张图片
ARM微控制器与嵌入式系统 基础知识_第87张图片
中断的允许/禁止控制
ARM微控制器与嵌入式系统 基础知识_第88张图片
中断的标志位 IF
ARM微控制器与嵌入式系统 基础知识_第89张图片
控制中断的开关
ARM微控制器与嵌入式系统 基础知识_第90张图片
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

中断的工作流程
ARM微控制器与嵌入式系统 基础知识_第91张图片
中断的堆栈占用
ARM微控制器与嵌入式系统 基础知识_第92张图片
ARM微控制器与嵌入式系统 基础知识_第93张图片
中断来后,CPU自动将这些寄存器压入堆栈
效率的平衡 可以手动压

3.4.2中断子程的概念和编程

ARM微控制器与嵌入式系统 基础知识_第94张图片
在这里插入图片描述

中断向量表
ARM微控制器与嵌入式系统 基础知识_第95张图片
中断优先级
ARM微控制器与嵌入式系统 基础知识_第96张图片
中断嵌套
ARM微控制器与嵌入式系统 基础知识_第97张图片
中断嵌套时的堆栈
ARM微控制器与嵌入式系统 基础知识_第98张图片
对内存比较大的开销,又可能发生堆栈溢出,嵌套有限。

中断的潜在风险

中断是独立的,为外部元素所触发的函数,快速实时响应一些事情,并且可能由硬件的通知打断任意位置的main函数,依赖堆栈保留现场,但内存里面全局变量是不会被改写的。

3.5 复位、时钟、存储器和总线

ARM微控制器与嵌入式系统 基础知识_第99张图片
中断向量表
ARM微控制器与嵌入式系统 基础知识_第100张图片
0000:堆栈指针向量 ARM厂商 堆栈指针CPU内部寄存器初始地址 SP
0004:开发工具的入口地址填写在这,上电后CPU自动从这里加载,入口函数最后一条指令就是main PC
ARM微控制器与嵌入式系统 基础知识_第101张图片
ARM微控制器与嵌入式系统 基础知识_第102张图片
ARM微控制器与嵌入式系统 基础知识_第103张图片
ARM微控制器与嵌入式系统 基础知识_第104张图片
RAM堆栈 返回地址 临时变量
ARM微控制器与嵌入式系统 基础知识_第105张图片
内部总线接口
ARM微控制器与嵌入式系统 基础知识_第106张图片
CPU内部的寄存器通过指令就可以实现
CPU按地址看外面的

3.6 小结:MCU的总体架构

CPU除了独立的时钟和复位用电路连接外,通过总线以地址的视角看待
ARM微控制器与嵌入式系统 基础知识_第107张图片
区别CPU内部寄存器通过指令访问,而是在外部寄存器通过地址访问,电路与编程的接口
ARM微控制器与嵌入式系统 基础知识_第108张图片
ARM微控制器与嵌入式系统 基础知识_第109张图片
ARM微控制器与嵌入式系统 基础知识_第110张图片
ARM微控制器与嵌入式系统 基础知识_第111张图片

你可能感兴趣的:(stm32,嵌入式)