1. 三总线:地址,数据,控制。
多说一嘴,地址总线,寻找存储器单元
数据总线,发送数据到存储单元(存数),或从存储单元取出它存储的数据
控制总线,控制CPU访问存储器单元的操作
2. 执行指令流程
取指令,译码,取操作数,执行指令,数据写回,取下条指令
3. 读存数据流程
LDR,STR, MOV……看这篇复习俺期中滴汇编复习
4. GPIO输入输出原理
首先知道GPIO是什么=》通用IO
输入信号:高电平低电平,产生方式:上拉电阻和下拉电阻
输出信号:高电平低电平的具象显示,比如LED二极管(所需电流小,2-10mA),比如蜂鸣器。LED低电平亮,高电平不亮,蜂鸣器高电平响,低电平不响
熟悉书上两张图!输入三种,输出二种
5. Flash读写流程以及读,写,擦除三种操作的原理
写:将存储单元内容由1变0
擦除:将存储单元内容由0变1
读:根据指定扇区号定位数据所在扇区,加上偏移量得到数据起始位置,然后从这个起始位置开始读取指定长度的数据。
流程:开始->对指定扇区进行初始化->扇区是否为空-(不为空)->读扇区指定首地址和长度的数据->清空扇区->扇区是否为空-(是)->向指定扇区写入数据->读指定扇区指定首地址和长度的数据->结束
6. 串口通信中的相关知识:串行通信的基本原理,相关知识概念,如:波特率、起始位、停止位,传输波形图,收发数据的原理、方式以及汇编实现。
首先明确:串行通信由三根线构成:发送,接收,GND(地线)=》记住这个构造,有用
在没有数据的时候,信号一直是1。于是异步通信存在一个起始位0,一到两个停止位,这也是对异步通信效率影响最大的因素。
时序图(传输波形图):字母Bascii为66,即0x42=0b 0100 0010。记得留一个起始位,最后一位停止位是1。
所以每秒传输的位数叫波特率,倒数就是每一位在数据线中存在的时间(位长)
收发数据方式:全双工,半双工,单工。
全双工:3根线,同时收发,从任何一端看都具有发送和接收
半双工:2根线,同时只能由一方发,另一方接
单工:2根线,仅做发送或接收用,即数据传输是单向的
7. 中断的相关知识,如:中断向量、中断向量表、中断源、中断向量号等概念
中断源:引发CPU中断的外部设备
ISR中断服务程序:当CPU发生中断时,需要执行相应的中断服务程序进行响应
中断向量:中断服务程序起始地址
中断向量表:按中断向量号从小到大存放中断向量的表
中断向量号:给中断源进行编号,从而在CPU发生中断时通过将中断向量号和中断向量表中存储的进行比对,确定应该执行哪个程序。根据中断向量号也可以区分内部中断和非内部中断。
所以发生中断时流程为(后续🉑️参考该框架):
中断请求:中断源向CPU发出中断信号
中断采样:CPU周期性检查系统中是否有中断信号
中断响应:系统中有中断信号,CPU判断是否应该响应,是,则保存当前运行环境的上下文于堆栈,然后执行ISR,执行完后从堆栈中恢复先前的上下文。
8. 定时器的基本原理,实现流程
可以认为,定时器是中断的一个例子。
定时器分硬件,软件,可编程定时器三种。
软件占用CPU,可编程不占用。原理是:用指令设定定时器时长(定时常数)后,CPU正常工作,定时器计时结束,向CPU发送中断信号或产生一个输出。
9. ADC的相关知识,如:转化精度、信号输入形式、滤波、物理量回归原理、量化误差、转换速度的概念、参考电压及其作用等。
ADC数模转换,通过参考电压将物理量(连续值)转化为数字量(离散值)存在精度问题,精度问题带来了转换速度和误差问题,处理误差主要是滤波方式。数字量处理完毕后需要回溯成物理量,使之能用于实际用途。
转换精度:数字量的位数
参考电压:为了达到精度,电压会被分成很多份,每一份必须有一个稳定的基准值作为参考,这个基准电压即参考电压。
所以这就提到了转换的两种方式:单端输入和差分输入。单端输入以GND电压为基准,差分输入的数据线为2根,以差值为数字量。前者会受到电磁干扰。
接下来说转换速度。精度越高,速度越慢。同时速度还受到硬件本身的影响。
就像上面说的,参考电压其实不稳定的,那么同样物理值转换出来的数字值就有概率不同,所以需要滤波,有均值滤波和中值滤波(对,字面意义)
最后,将数字量和物理量对应起来建模(寻找逻辑关系),即物理量回归。
10. DMA的原理以及一般操作流程
DMA,直接存储器读取,可以不经过CPU使存储设备与存储设备或I/O设备进行交互,实现将数据从一个地址复制到另一个地址的操作。因为DMA内部有数据,地址二总线以及控制寄存器,不需要经过CPU计算地址,但需要接上CPU的总线。
流程:明确角色:CPU,I/O接口,DMA;步骤还是:请求,响应,保存上下文开始执行,恢复上下文。
DMA请求:CPU对DMA进行初始化,并向I/O接口发送操作命令,I/O对DMA控制器提出请求
DMA响应:两件事:根据优先级,DMA是否现在应该响应这个请求?;CPU是否能把总线给DMA使用?如果均可以,总线裁决逻辑发出应答,表示DMA已响应,通过DMA控制器通知I/O接口开始传输。
DMA传输:DMA控制器获得总线控制权,CPU挂起或只执行内部操作,DMA发出命令,直接控制I/O接口和RAM进行DMA传输
DMA结束:传输结束后,DMA控制器立刻释放总线的控制权,同时告知I/O接口任务执行完毕,I/O接口受到信号后停止I/O设备工作,同时发出中断信号告知CPU DMA任务已完成,CPU可以开始介入。CPU执行检查DMA正确性的代码,无误后带着DMA传输的结果和状态继续执行原来的程序。