stm32标准库初始化
标准库初始化 [!IMPORTANT] 采用Keil IDE基于C语言进行编写stm32运行代码(以stm32f10x系列为例),使用标准库首先需要引入相应的库文件,该文件需要自己去网上下载 新建工程编写逻辑代码前需要对keil将文件夹中的内容读入到IDE中 ,点击keil上方tab栏中的Project里面的New μVisioon Project...,找到存放共工程的文件夹,并在该文件夹中在下方的文件名中输入该工程的名称,后点击保存。 在芯片选择中选择STM32F1x对应的芯片,后点击OK,后续的窗口直接关闭即可。 后面再将对应的固件库文件放入到该工程文件夹中。 keil中把文件导入工程在keil中点击三个方块样式的工程管理按钮 在Project Items中的Groups可添加对应名的文件夹,然后在再右侧的files的下方Add Files添加对应的固件库文件,即可成功创建文件。 然后点击三个方块样式旁边的魔术棒按钮。 在Tab栏中C/C++中的Include Paths中添加工程所用到的文件以及Define中改为USE...
计算机网络-物理层
基础概念 数据:传送信息的实体,通常是有意义的符号序列。 信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。 信源:产生和发送数据的源头。 信宿:接受数据的终点。 信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质。 码元:码元指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。一码元可以携带多个比特的信息量。 速率:也叫数据率,指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。 码元传输速率:表示单位时间内数字通信系统所传输的码元个数,单位是波特,1波特表示数字通信系统每秒传输一个码元。 信息传输速率:表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特/秒。 三种基本通信方式 单向通信。只有一个方向的通信而没有反方向的交互,仅需要一条信道。如,无线电广播、电视广播就属于这种类型。 半双工通信。通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接受信息,需要两条信道。...
计算机网络-计算机网络体系结构
多层次ISP结构 ISP:因特网服务提供者/因特网服务提供商,是一个向广大用户综合提供互联网接入业务、信息业务、和增值业务的公司,如中国电信、中国联通、中国移动等。 分为主干ISP、地区ISP和本地ISP。 图中IXP可以提高同地区的网络通信速度。 计算机网络OSI七层模型中,下三层网络层,数据链路层和物理层就代表着通信子网(各种传输介质、通讯设备、相应的网络协议组成),路由器是网络层的通讯设备,交换机、网桥是数据链路层的通讯设备,集线器,中继器是物理层的通讯设备。 上三层应用层、表示层和会话层则是资源子网(实现资源共享功能的设备和软件的集合)。 计算机网络的分类按分布范围分类按分布范围可分为以下几种: 广域网(WAN)。广域网实现只要通过交换技术,需要交换机及路由器作为媒介来进行报文交换,一般各节点交换机都是高速链路,具有较大的通信容量。 城域网(MAN)。城域网大多采用以太网技术,有时也常并入局域网的范围讨论。 局域网(LAN)。局域网一般通过广播技术实现,覆盖范围较小。 个人区域网(PAN)。个人区域网指用无线技术连接起来的网络。 按交换技术分类按...
操作系统-输入输出管理
IO设备IO设备就是可以将数据输入到计算机,或者可以接受计算机输出数据的外部设备,属于计算机中的硬件设备。 IO设备的分类 按使用特性 人机交互类外部设备。例如鼠标、键盘、打印机等——用于人机交互 存储设备。例移动硬盘、光盘等——用于数据存储 网络通信设备。调制解调器等——用于网络通信 按传输速率 低速设备。例如鼠标、键盘等——传输速率为每秒几个到几百字节。 中速设备。如激光打印机等——传输速率为每秒数千至上万个字节。 高速设备。如硬盘等——传输速率为每秒数千字节至千兆字节。 按信息交换的单位分类 块设备。传输速率较高,可寻址,即对它可随机地读/写任一块,如磁盘等。 字符设备。传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式,如鼠标、键盘等。 IO控制方式程序直接控制方式从计算机外部设备读取的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在IO控制器的数据寄存器中。 优点:实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可。 缺点:CPU和IO设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状...
操作系统-内存管理
内存管理的概念内存空间的分配与回收为了更好能适应不同大小的程序要求和提高内存的利用率,就需要对内存空间进行分配与回收。 覆盖与交换覆盖于交换技术是在多道程序环境下用来扩充内存的两种方法。 覆盖技术 覆盖技术的思想就是将程序分为多个段。常用的段常驻内存,不常用的段在需要时调入内存。 常驻内存的段放在“固定区”中,调入后就不再调出(除非运行结束), 不常用的段放在“覆盖区”,需要用到时调入内存,用不到时调出内存。 缺点:由于必须由程序员声明覆盖结构,操作系统完成自动覆盖。对用户不透明,增加了用户编程负担 交换技术 交换技术的思想技术当内存空间紧张时,系统将内存某些进程暂时换出外存,把外存中某些以具备运行条件的进程换入内存(类似进程在内存与磁盘间动态调度)。 连续分配管理方式连续分配是为用户程序分配一个连续的内存空间。 单一连续分配在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,存放操作系统相关数据;用户区用于存放用户进程相关数据。 在单一连续分配中,内存只能有一道用户程序,用户程序独占整个用户区空间。 优点:实现简单,无外部虽破;可以...
操作系统-进程与线程
进程的概念为了让使参与的每个程序都能独立地运行,为之专门配置的一个数据结构就称为进程块(Process Control Block, PCB)。而由程序段、相关数据段和PCB三部分构成了进程实体(又称进程映像)。 PCB是进程存在的唯一标识,当进程被创建时,操作系统会为其创建PCB,结束后会回收其PCB。 若执行相同的三个程序,此时会将三个程序载入进程,它们的PCB、数据段各不相同,但程序段的内容都是相同的。 进程的状态与转换进程通常有以下几种状态: 运行态。进程正在处理机上运行。 就绪态。进程获得了除处理机外的一切所需资源,一旦得到处理机,便可立即运行。 阻塞态。又称等待态,进程正在等待某一事件(不是在等待CPU处理完成)而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使根据阻塞原因的不同,可设置多个阻塞队列。 创建态。进程正在被创建,尚未转到就绪态。 终止态。进程正从系统中小时,可能是进程正常结束或其他原因推出运行。 由于进程的整个生命周期都在运行态、就绪态、阻塞态三种状态,所以也称这三状态为基本状态。 进程控制进程控制主要是对系...
计算机组成原理-IO系统基本概念
IO控制方式简介假设有这么一段代码: #include <stdio.h> int main(){ char i; scanf("%c", &i); printf("%c",i); return 0; } 当上方代码执行到scanf("%c", &i);此时需要I/O设备来输入内容使程序继续进行下去。 此时CPU有两种解决方案: 程序查询方式:CPU不断轮询检查I/O控制器的状态寄存器,检测到状态为”已完成“后,再从数据寄存器取出输入数据。 程序中断方式:等待键盘I/O时可以先让CPU执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据。 用上述方法都需要用CPU做中转站来让主存和IO设备相互联系。 若对磁盘等高速外设就不适合使用上诉方法,因此就可以用DMA(Direct Memory Access)控制方式。 DMA控制方式:主存和高速io设备之间建立一条直接数据通路。每完成...
计算机组成原理-总线概述
总线的基本概念总线是一组能为多个部件同时共享的公共信息传送线路。由于总线发送信号,与总线连接的所有部件都能接受到,所以同一时刻只能有一个部件发送数据。可有多个部件同时接受数据。 总线的特点:共享:指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。 分时:指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时向总线发送信息。 总线的分类串行总线与并行总线串行总线: 每次传送只传送1bit数据。 优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。 缺点:在数据发送和接受的时候要进行拆卸和装配,要考虑串行,并行转换的问题。 并行总线: 每次可以并行发送多bit数据。 优点:总线的逻辑时序比较简单,电路实现起来比较容易。 缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。 按功能进行划分片内总线片内总线式芯片内部的总线,如CPU内部寄存器与寄存器之间、ALU之间的公共连接线...
计算机组成原理-多处理器的基本概念
SISD、SIMD、MIMD的基本概念单指令流单数据流(SISD)结构该计算机通常仅包含一个处理器和一个存储器。 特性: 各指令序列只能并发、不能并行,每条指令处理一两个数据。 不是数据级并行技术。 硬件组成: 一个处理器+一个主存储器 若采用指令流水线,需设置多个功能部件,采用多模块交叉存储器。 前面介绍的计算机架构都是SISD结构。 单指令流多数据流(SIMD)特性: 各指令序列只能并发、不能并行,但每条指令可同时处理多个数据。 是一个数据级并行技术。 硬件组成: 一个指令控制部件(CU)+多个处理单元/执行单元(如ALU)+多个局部存储器+一个主存储器 每个执行单元有各自的寄存器组、局部寄存器及地址寄存器。 不同执行单元执行同一条指令,处理不同的数据。 多指令流单数据流(MISD)能同时执行多条指令,处理同一个数据,现实中不存在这种计算机。 多指令流多数据流(MIMD)如现实中的intel i5或 i7等处理器。 特性: 各指令序列并行执行,分别处理多个不同的数据。 是一种线程级并行,甚至是线程级以上并行技术。 进一步分类可分为: 多...
计算机组成原理-指令流水线
指令流水的定义一条指令的执行过程可以分成多个阶段,每个阶段功能由相应的功能部件完成。而视各阶段为相应的流水段,则指令的执行过程就构成了一条指令流水线。 顺序执行方式即只有上一条指令完成后才能进行下一条指令的执行。 若设取指、分析、执行三个阶段的时间都相等,用t表示,顺序执行方式可得: 总耗时T=$n\times 3t=3nt$。 传统的冯诺依曼机就是采用顺序执行方式,该方式又称串行执行方式。 优点:控制简单,硬件代价小。 缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。 一次重叠执行方式 总耗时T=$(n-1)\times 2t+3t=(1+2n)t$。 优点:程序的执行时间缩短了1/3,各功能部件的利用率提高。 缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂。 二次重叠执行方式 总耗时T=$(n-1)\times t+3t=(2+n)t$。 优点:与顺序执行程序的执行时间缩短了2/3,各功能部件的利用率提高,这是一种理想的指令执行方式...
计算机组成原理-控制器的功能和工作原理
硬布线控制器硬布线控制器时根据指令操作码、目前的时钟周期、节拍信号以及机器状态条件来发出“微命令”。 下方图中FE为取值阶段、IND为间接寻址阶段、EX为执行阶段、INT为中断阶段。 硬布线控制器的设计设计步骤: 分析每个阶段的微操作序列(取值、间址、执行、中断四个阶段),确定指令在什么阶段。 选择CPU的控制方式,确定采用定长机器周期还是不定长机器周期,每个机器周期安排几个节拍。 安排微操作时序,如何在规定节拍内完成整个机器周期的所有微操作。 电路设计 取值周期内的微操作取值周期所有的指令都是一样的,即 PC -> MAR 1 -> R M(MAR) -> MDR MDR -> IR OP(IR) -> ID(指令译码器,Instruction Decoder) (PC) + 1 -> PC 间址周期内的微操作该阶段所有指令都一样 Ad(IR) -> MAR 将IR地址码部分放到MAR中,即形式地址来找有效地址 1 -> R M(MAR) -> MDR 找到有效地址的数据放入MDR中 MDR -&...
计算机组成原理-数据通路的功能和基本结构
数据通路的基本结构数据通路的基本概念: 内部总线。使指同一部件,如CPU内部连接各个寄存器及运算部件之间的总线; 系统总线。是指同一台计算机系统的各部件,如CPU、内存、通道和各类IO接口间互相连接的总线。 CPU内部单总线方式单总线模式就是将所有寄存器的输入和输出端都连接到一条公共通路上,这种结构简单,但数据传输存在较多冲突现象,性能较低。 单总线模式下寄存器之间数据传送若想把PC内容送至MAR,实现传送操作的流程及控制信号为: (PC)->Bus,即PC先把信号发送给CU,然后CU给PCout高电平,使PC的值可以传送到总线中。 Bus->MAR,然后CU给MARIN高电平,总线内容传入MAR中。 单总线模式下主存与CPU之间的数据传送把CPU中数据发送给主存,比如CPU从主存读取指令,流程如下: (PC)->Bus->MAR Pcout和MARin有效,将PC中值通过总线放到MAR中 1->R CU发读命令(通过控制总线发出),使MAR可以通过地址总线将地址传到主存。 MEM(MAR)->MDR MD...