【1】单片机是什么?(MCU SOC)
--单片机:集成电路芯片 微型计算机系统 片上系统
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统
--51:空调控制器、屏幕
51单片机 - STC89C51 / AT89C52 - 8位处理器
32单片机 - STM32 / 复旦微 - 32位处理器
处理器位数 - 单次运算最大处理的数据长度 - 运算能力、数据处理速度
应用领域:
智能家居 - ...
工业自动化 - 机械臂、加工中心、货物分拣... (新松机器人)
仪器仪表 - 自动抄表、智慧电表/水表 (积成电子)
智慧农业 - 智慧大棚、灌溉、喷药、果蔬溯源
零售销售 - 真伪识别、商品扫描
通信网络 - 路由器、交换机、服务器 (浪潮)
安全防护 - 摄像头(家用、军工) (神戎电子、中维世纪、宇视科技)
...9
【2】课程:
1)基础储备
--预科:工具使用 基本储备
--C语言:整个课程基础 (汇编基础演变 读写容易,可移植)
--Liunx及C高级:shell命令 C高级知识
--数据结构:算法 --实际应用时可以更简单方便
上层软件
---IO、网络编程、网络高级、C++、QT
2)底层开发
--STM32
接触硬件的课程
不是简简单单的应用API
-- ARM Linux驱动(移植 驱动开发)
【3】语言:
机器码(不算语言):读写难(不可移植)
C:本门课使用 .c
C++:C基础上升级的--QT开发 C++开发
python\GO:爬虫类的、客户端、爬虫,数据分析,数据挖掘
c#:后端 上位机
PHP\JS:前端 网站 网页
易语言:
汇编:.s 可读写(不能移植)
CPU能够识别的唯一的语言是机器码,一个CPU能够识别哪些机器码是由处理器的硬件(运算器种类)决定的不同的机器码代表不同的运算,同样不同的CPU的机器码是不通用的即不可以移植,汇编是用一个标识符来代表一个机器码,所以不同的CPU汇编也不一样,即汇编语言不可以移植。
C语言编译的时候我们可以使用不同的编译器将C编译成不同的汇编和机器码,所以C可以不依赖CPU架构
【4】IO逻辑:
计算机系统中的高低电平逻辑1和0,数据在计算机中的存储、传输、运算都是以二进制形式进行的。
计算机传输数据的方式只能使用电信号的方式表示二进制数据。
单片机: 高低电平 高电平 1 低电平0
0001 0010 0011
电压:电压差 电势差
模拟信号:模拟信号是连续的,拟信号可以是任意数值状态;波形连续的信号(电压、温度、压力...)
数字信号:数字信号是离散(不连续)的,数字信号只有“0”和“1”两种状态,离散的不连续的信号(开关)
【5】计算机的组成
--输入设备、输出设备、存储器、运算器、控制器
1)输入设备:将其他信号转换为计算机可以识别的信号(电信号) 。,鼠标、键盘、扫描仪、数位板、摄像头、手柄、麦克风
2)输出设备:将电信号(0、1)转为人或其他设备能理解的信号。音响 显示器 单音节 屏幕
3)存储器:用来存放程序和数据的部件,也是计算器能够实现存储程序。硬盘、U盘、内存、光盘、软盘、SD卡、磁带、游戏卡带
程序:指令的有序集合 //汇编指令
4)运算器:算术运算,逻辑运算
5)控制器:如从存储器中取出指令,控制计算机各部分协调运行
控制器和运算器整合在CPU中--单片机组成:
pc去读加法指令(取指),然后放到指令寄存器中,然后再放到译码器中去译码,译完码后给运算器去执行
不同的cpu运算器不同汇编指令也不同。
指令的解析
一条指令(机器码)的执行通常分为三个阶段:
1)取指:
控制器将PC寄存器中的值发送给内存,内存将对应地址中的指令(机器码)传送回CPU的指令寄存器IR中
2)译码:
指令译码器对IR中的指令进行识别,即将指令(机器码)翻译成具体的运算操作(+/-/*...)
3)执行:
运算器执行对应的指令并将结果写入寄存器 执行完一条指令后CPU内对应的硬件会将PC的值自动增加使PC指向内存中的下一条指令
【6】编译步骤
--预处理
将不能参与编译的内容(比如宏定义,注释)处理掉,主要进行宏定义替换、头文件展开,(带#号的都没法编译),带分号的全部编译
--编译
--汇编
【7】STM32G0架构
● 二个主模块 :
– Cortex-M0 内核及先进高性能总线 (AHB bus)
– 通用 DMA ( GP-DMA -- general-purpose DMA)
STM32F103 M3内核
STM32G0/STM32F0 M0内核
● 四个从模块 :
– 内部 FLASH flash是存储芯片的一种,通过特定的程序可以修改里面的数据。 FLASH在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash
– 内部SRAM SRAM——“Static RAM(静态随机存储器)”的简称,所谓“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。
– 专门用于连接 GPIO 口的 AHB2
– AHB 到 APB 的桥 , 所有的外设都挂在 APB 总线上
【8】ARM架构
处理器架构 - CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示
ARM与STM32之间的联系 stm32是基于ARM内核的一种控制器,是包含与被包含的关系。 ARM(STM32)
ARM是内核不是芯片 不生产芯片只是提供技术
四大主流架构:
ARM - 主流微控制器
Intel - 大型设备PC\服务器
MIPS - 通信设备、游戏机
RISC-V - 开源项目
面试题:什么是ARM?
一家公司:英国ARM - 日本 软银 芯片IP供应商 - 设计
一种处理器:ARM处理器架构
早期经典处理器 ARM7 ARM9 ARM11
ARM - cortex系列 - A 高性能处理器
- R 实时性处理器
- M 消费级
一种技术:采用精简指令集RISC的处理器解决方案
【9】内部架构(Cortex-M0架构)
Cortex-M0 微处理器主要包括处理器内核、嵌套向量中断控制器(NVIC)、调试子系统、内部总线系统构成。
Cortex-M0 微处理器通过精简的高性能总线(AHB-LITE)与外部进行通信。
Thumb 指令集,高效、高代码密度;
冯诺依曼架构
冯·诺依曼体系结构冯·诺依曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。
哈佛架构
哈佛结构的计算机由CPU、程序存储器和数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。
【10】Cortex-M0特性:
高性能,使用ARMv6-M的体系架构;
中断数量可配置(1~32 个),4 级中断优先级;
门电路少,低功耗,处理器可在休眠状态下掉电以降低功耗;
与 Cortex-M1 处理器兼容,向上兼容 Cortex-M3 和 Cortex-M4 处理器;
支持多种嵌入式操作系统,也被多种开发组件支持,包括 MDK(ARM Keil 微控制器开发套件)、RVDS(ARM RealView 开发组件)、IAR C 编译器等。
【11】Cortex-M0的两种工作模式和两种工作状态
线程模式(Thread Mode):
芯片复位后,即进入线程模式,执行用户程序;
复位就是通过程序把输入的值变为通电时候的初始状态
处理模式(Handler Mode)。
当处理器发生了异常或者中断,则进入处理模式进行处理、处理完成后返回线程模式。
Thumb状态:正常运行时处理器的状态
调试状态:调试程序时处理器的状态
【12】Cortex-M0相关寄存器
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
特殊功能寄存器:
xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成
应用PSR(APSR):包含前一条指令执行后的条件标志
N负数标志 Z零标志 C进位借位标志 V溢出标志
中断PSR(IPSR):包含当前ISR的异常编号
执行PSR(EPSR):包含Thumb状态位
地址映射:
ARM(推荐)
芯片 厂商实际用的