基本概念:
嵌入到对象体系中,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗、环境等严格要求的专用计算机系统。
基本特点:
嵌入性 专用性 计算机系统
应用演变:
MCU作为主控——MCU+RF+Sense+Algorithm
嵌入式处理器:
微处理器MPU,具备MMU,如S3C2440A;
微控制器MCU,将CPU,存储器,中断系统和片内外设集成在单个芯片(模拟外设(模数数模转换器,电机控制,运算放大器,电压比较器)数字外设(USB,LCD液晶控制器,SPI/UART,SD卡接口)),如STM32;
数字信号处理器DSP
片上系统SOS
S3C2440和stm32f411ret6的区别
定位:处理器、智能设备 高功能单片机、工业控制
系统:有MMU、Linux 无MMU,FreeRTOS
硬件架构:ARMv7 Cortex-M4 Flash和RAM空间小 ARM920T FLash和RAM外接空间大
软件结构:程序运行空间和数据存放空间固定? 程序和数据都在SDRAM
指令集:ARMv6大部分指令集和ARMv7的THumb-2指令集,指令密度更大
ARMv4指令集,在使用中更多使用的是ARM指令集
软件层级
驱动程序采用寄存器或库函数开发方式,控制片内外设和外围电路
操作系统管理系统所有资源
板级支持包是HAL的一种实现形式
软件开发工具:CubeMX 芯片配置工具
嵌入式软件:MCU固件包(HAL库(库函数开发),中间件(实时操作系统,图形用户界面),例程)
MCU固件包文件结构
CubeMX
芯片选型(工作频率,存储区容量,引脚数量)
引脚分配
外设配置
时钟配置(选择时钟源,确定系统时钟和外设时钟工程频率)
中间件配置(软件插包)
初始化代码项目生成(MCU固件包)
图形化配置时钟,片内外设,自动生成工程框架,MDK,提高开发效率
流程:systemcore sys debug serial wire
RCC 外部高速时钟选择BYPASS旁路模式8MHz
PA5 GPIO_Output
外部输入时钟8MHz,锁相环输入里选择HSE,锁相环的输出PLLCLK作为系统时钟,总线时钟HCLK为100MHz
cubmx修改的地方:reset and run 还有下图代码优化等级,自定义文件头文件路径需要添加
温度采集报警实例
前后台编程
嵌入式操作系统:任务管理 时间管理 任务通信 内存管理
stm32f411ret6
最高主频180MHz
Flash512K
SRAM128K
1个16位高级定时器,2个32位通用定时器,5个16位通用定时器
3路USART,5路SPI/I2S,3路I2C,1路SDIO
1路16位12通道ADC 1个全速USB 2.0 OTG
50个通用数字IO
封装LQFP64脚
VSS VDD: 数字外设供电
VSSA VDDA: 模拟外设供电片内AD转换器的电压基准
VBAT:接入外部电池,提供给内部的实时时钟,系统掉电仍能正常工作
VCAP_1:片内的电压调节器输出,接入4.7μ电解电容,用于电源滤波
3和4脚外部低速时钟:32.768k的石英晶振,片内实时时钟使用
5和6脚外部高速时钟:4M-26M晶振范围
时钟
LSI 内部低速时钟,由芯片内部的RC振荡器提供,默认32KHz
HSI 内部高速时钟,由芯片内部的RC振荡器提供,默认16MHz
HSE 外部高速时钟 4M-26M晶振范围 1M-50M外部时钟信号
LSE 外部低速时钟
启动
BOOT0为0 片内Flash启动
1和0 系统存储器启动 用于串口下载(ISP模式)
1和1 片内SRAM启动 代码调试
微控制器最小系统的定义:
侠义的最小系统:
电源电路,时钟电路,复位电路,调试电路,主控芯片电路
大于300纳秒,上电复位(内部上拉电阻和电容C14)和手动复位(B2),复位脉冲不是标准的方波。电压监控,外部看门狗。
SWDIO PA13 串行数据输入输出
SWCLK PA14 串行时钟
SWO PB3 调试信息输出
NRST
后两个不连接
PA2/PA3
PA5
PC13
PA13/PA14 SWD接口
实时时钟RTC供电和模拟电源数字电源不是一起的?
Arduino UNO接口