【微机期末胡乱码重点】

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传输的结果和状态继续执行原来的程序。

        

        

        

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值