一、概述
嵌入式系统:嵌入在电子设备中的小型计算机系统
- 结构相对简单,但基本的计算机系统组件都有
- 功耗小
(一)系统组成
系统框图
1.CPU内核:不同的处理器架构采用不同的CPU
- CISC(复杂指令集架构)
- RISC(精简指令集架构)
2.调试系统:嵌入式系统调试接口
- JTAG:Joint Test Action Group
- SWD:Serial Wire Debug
不同设备厂商有自己的仿真器(USB转上述协议)
3.存储系统:存储指令与数据
- 指令存储(Flash/ROM)
- 数据存储(SRAM)
4.中断系统:管理嵌入式系统中断
- NVIC:Nested Vectored Interrupt Controller,在ARM内核中有,中断管理模块
5.外设系统:嵌入式系统外设,通过总线与内核系统通信
- 地址总线
- 控制总线
- 地址总线
(二)编程
1.存储器映射:统一编址
将除了CPU之外的任何设备(存储器、外设等等)统一编址,然后通过地址访问各个外部设备
2.手册阅读
(1)总体查看该MCU的特性以及有哪些外设
(2)查看MCU的整体硬件框图,明白整个MCU的硬件结构
(3)查看时钟部分框图,搞清楚MCU有哪些时钟源,以及可以提供多少频率的时钟分频
(4)查看MCU的引脚图,明确有哪些引脚可以使用
(5)根据相应外设查看外设的相关东西
- 外设的功能
- 外设配置的步骤
- 外设寄存器
3.编程流程
(1)初始化
- 时钟开启
- 相关引脚配置:是否复用
- 外设寄存器配置:功能模式选择、时钟配置、工作方式配置
- 使能配置:外设使能、是否中断使能
(2)数据读写
- 查询模式
- 直接读写数据寄存器buffer
- 中断模式
- 中断标志是否产生(中断触发源)
- 数据收发(数据寄存器buffer)
- 中断标志位清零
- DMA模式