单片机:
单片微型计算机(MCU)
SoC:(系统芯片)片上系统
-
SOC就是定制功能版本的MCU
主板
-
开发板
-
通常用与学习用途,功能全接口丰富,使用与研发研究学习。
-
-
最小系统(核心板)
-
集成了核心的通用功能,可根据需求裁剪,通用性较好,核心板作为独立的模块被分离,增加离系统的稳定性,通常用在实际产品中
-
-
PCB板::印制电路-板
-
重要的电子部件,是电子元器件的支撑体,是电子元器件相互连接连接的载体。
-
STM32
-
介绍
-
stm32是一款32位的微控制器
-
功能强大,性能优异片上资源丰富功耗低,较为常用
-
-
优势
-
产品型号丰富,有选择性
-
运算速度快,功耗低
-
处理器外设接口丰富
-
库函数开发体系资料多,应用官方
-
ARM体系架构
了解ARM
-
ARM一家做芯片知识产权的供应商,只做研发不做生产。
-
ARM处理器由英国Acon公司设计低功耗低成本的一款RISC处理器
-
经典的处理器:ARM7/9/11,后续处理 器开始以cortex命名
-
Cortex-A 高性能
-
Cortex-R 汽车电子 (实时性)
-
Cortex-M 低成本、低功耗
-
-
ARM代表一种技术。具有性能高、成本低和能耗节省的特点。在智能机、平板电脑、嵌入控制、多媒体数字等处理器领域拥有主导地位。
RISC(精简) CISC(复杂)
-
早期cpu为CISC :主要目的是通过较少的机器语言来实现所需的计算任务。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。
-
RISC架构要求软件来指定各个操作步骤,这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。
主流架构
-
ARM架构
-
X86/X64
-
RISC-v(开源)
-
MIPS架构
-
-
-
系统架构
-
冯.诺依曼架构
-
冯·诺依曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。
-
-
哈佛架构
-
哈弗架构的计算机由cpu ,程序存储器和数据存储器组成程序存储器和数据存储器采用不同的总线从而提供了较大的存储器带宽,使数据移动交换更加方便,提供了较高的数字信号处理能力。
-
-
架构的主要区别是命令、设计总线
Cortex-M0指令集
-
ARM处理器支持两种指令集:ARM和Thumb。
-
EPSR寄存器的T标志位负责指令集的切换,Cortex-M0只支持Thumb指令。
-
ARM指令集 32位精简指令集; 指令长度固定;降低编码数量产生的耗费,减轻解码和流水线的负担;
-
Thumb指令集指令宽度16位; Thumb指令集是ARM指令集的一个子集; 与32位指令集相比,大大节省了系统的存储空间;(密度高) Thumb指令集不完整,所以必须配合ARM指令集一同使用。
Thumb指令集和ARM指令集的区别
-
采用Thumb指令集 (ARM指令是32位的,而Thumb指令时16位的,如果存储空间中可以放32条ARM指令,就可以放64条Thumb指令,因此在存放Thunb指令时,代码密度高)
-
高性能,使用ARMv6-M的体系架构;
-
中断数量可配置1-32个,4级中断优先级
-
门电路少,低功耗 ,中断唤醒控制器(WIC),支持极低功耗休眠模式
-
兼容性好 与Cortex-M1 处理器兼容,向上兼容 Cortex-M3 和 Cortex-M4 处理器 ,可以很容易地升级、移植。
-
支持多种嵌入式操作系统,也被多种开发组件支持
Cortex-M0工作模式
-
线程模式(Thread Mode)- 芯片复位后,执行用户程序
-
处理模式(Handler Mode)- 当处理器发生了异常或者中断,处理完成后返回线程模式。
Cortex-M0工作状态
-
Thumb状态:正常运行时处理器的状态
-
调试状态:调试程序时处理器的状态
Cortex-M0的寄存器
-
R0-R12:13个通用寄存器。其中 R0-R7为低端寄存器,可作为16位或32 位指令操作数,R8-R12为高端寄存器,只能用作32位操作数
-
R13:栈指针寄存器 SP(the stark pointer),Cortex-M0 在不同物理位置上存在两个栈指针,主栈指针 MSP,进程栈指针 PSP。
-
在处理模式下,只能使用主堆栈,在线程模式下,可以使用主堆栈也可以使用进程堆栈。 系统上电的默认栈指针是MSP。这样设计的目的是为了在进行模式转换的时候,减少堆栈的保存工作。同时也可以为不同权限的工作模式设置不同的堆栈。
-
R14:链接寄存器LR(the link register),用于存储子程序或者函数调用的返回地址
-
R15:程序计数器PC(the program counter register)存储下一条将要执行的指令的地址。
-
特殊寄存器
-
xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成
-
应用PSR(APSR):保存程序计算结果的状态标志 N负数标志 Z零标志 C进位借位标志 V溢出标志
-
中断PSR(IPSR):包含当前ISR(中断服务程序)的异常编号
-
执行PSR(EPSR):包含Thumb状态位
-
-
CONTROL:控制寄存器
-
控制处理器处于线程模式时,使用哪个堆栈
-
=0,使用MSP 处理器模式时,固定使用MSP
-
=1,使用PSP
-
Cortex-M0的中断和异常
-
Cortex-M0 处理器最多支持32个外部中断(通常称为 IRQ)和一个不可屏蔽中断(NMI),另外Cortex-M0还支持许多系统异常(Reset、HardFault、SVCall、PendSV、SysTick),它们主要用于操作系统和错误处理。
STM32G030系统架构
-
系统主要由以下几个模块组成 :
-
二个主模块
-
– Cortex-M0 内核及先进高性能总线 (AHB bus)
-
– 通用 DMA ( GP-DMA -- general-purpose DMA)
-
-
四个从模块 :
-
内部 FLASH
-
内部SRAM
-
APB桥,连接AHB和APB,所有的外设都挂在APB总线上
-
G0: GPIOx直接挂在IOPORT总线上。
-
F0 : 专门用于连接GPIO口的AHB2总线
-
-
-
flash和SRAM的区别
Flash存储器是一种非易失性存储器,可以在掉电之后保存数据,通常用于存储程序代码。Flash存储器的可写入次数有限,且需要执行擦除操作才能写入新的数据,因此,在使用过程中需要注意擦写周期和数据备份问题。
SRAM存储器则是一种易失性存储器,具有相对较快的读写速度和无限的读写次数,但掉电时将会丢失所有内容。SRAM存储器主要用于暂存数据和临时变量,读写操作由CPU直接完成,访问速度较快。
单片机的Flash存储器和SRAM存储器都嵌入在单片机芯片内部,能够方便的实现对程序和数据、变量的读写操作。通常,编译器会把程序烧录在Flash存储器,并使用SRAM存储器来存储变量、函数堆栈以及其他的临时数据。
AHB和APB的区别
AHB是高速总线,是一种系统总线,它主要负责连接处理器、DMA等一些内部接口。AHB系统由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。
APB是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。
什么是外设?如何理解片上外设?
与传统的外设不同,片上外设通常具有以下优点:
高效性:片上外设能够与主处理器实现高速的数据传输,响应时间短,执行效率高。
集成度高:片上外设多个模块都嵌入到处理器芯片内部,极大地降低了PCB面积和电路复杂度。
低功耗:处理器和片上外设采用相同的工艺,能够满足高密度和低功耗的需求。
可靠性高:提高了整体系统的可靠性和稳定性,也降低了电磁干扰的可能。