目录
概述
本文主要介绍嵌入式操纵系统的前后台系统的内容,包括基本定义,架构实现关键性技术等内容。
1 基本概念
前后台系统(Foreground-Background System)是嵌入式开发中最基础的系统架构模式,也称为超级循环系统(Super Loop)。
1)核心特征
前台(Foreground):中断服务程序(ISR),处理异步事件 --- 中断级别运行
后台(Background):主程序无限循环,处理非实时任务 --- 任务级别运行
无任务调度:依赖循环轮询处理任务
无优先级机制:任务执行顺序固定
2)前后台系统的架构
3)与RTOS方案对比
对比维度 | 前后台系统 | RTOS系统 |
---|---|---|
响应速度 | 中断级响应最快 | 受调度器影响 |
多任务处理 | 线性轮询 | 并行任务 |
内存占用 | 极少(无TCB等开销) | 至少2-10KB RAM |
开发难度 | 简单 | 需理解调度机制 |
可维护性 | 复杂逻辑难扩展 | 模块化设计 |
2 嵌入式的前台系统
2.1 前台系统基本概念
前台系统(Foreground System)是指完全依赖中断驱动的嵌入式系统架构,所有功能均由中断服务程序(ISR)直接处理,通常没有主程序循环或仅有极简的背景任务。前台系统是嵌入式领域最精简的架构范式,其核心在于完全中断驱动的设计哲学。与常规前后台系统不同,真正的前台系统甚至不需要后台循环,仅保留必要的硬件初始化代码,之后CPU即进入永久休眠状态,完全依靠中断唤醒处理。
核心特征
纯中断驱动:无后台主循环或仅有空循环
事件触发:所有操作由硬件中断发起
极致实时性:响应延迟仅取决于中断延迟
资源占用极低:适合超低功耗场景
2.2 架构实现模式(范例)
范例-1:
范例-2:
2.3 中断负载均衡表(范例)
中断源 | 触发频率 | 执行周期 | 建议优先级 |
---|---|---|---|
USB HS | 1MHz | <200ns | 0 (最高) |
ETH MAC | 100KHz | <2μs | 1 |
UART | 115.2Kbps | <10μs | 3 |
2.4 性能极限
1)中断延迟测试(Cortex-M7 @480MHz实测数据:)
中断类型 | 无嵌套延迟 | 三级嵌套延迟 |
---|---|---|
GPIO | 23ns | 89ns |
SPI | 42ns | 128ns |
DMA | 38ns | 115ns |
2) 功耗优化对比
工作模式 | STM32U5电流 | 唤醒时间 |
---|---|---|
Run @80MHz | 4.2mA | - |
Sleep | 1.8mA | 120ns |
Stop2 | 12μA | 2.1μs |
Standby | 0.8μA | 45ms |
3 嵌入式的后台系统
3.1 后台系统基本概念
后台系统(Background System)是嵌入式系统中持续运行的基础处理层,通常表现为一个无限循环的主程序,负责处理非实时性任务、状态维护和资源管理.
如果让一个事件后台运行,该事件只有在轮到后台程序执行时才能被处理,这样的系统成为:任务级别响应。任务的响应时间取决于后台循环的时间。
核心特征
主循环架构:以
while(1)
为核心的执行框架非实时处理:执行时间弹性较大的任务
资源管理中心:管理内存、外设等系统资源
任务协调者:与前台中断协同工作
3.2 典型架构实现
3.3 关键技术特性
(1) 任务调度策略
调度方式 | 实现方法 | 适用场景 |
---|---|---|
轮询调度 | 顺序执行各任务 | 简单控制系统 |
时间触发 | 基于定时器触发 | 周期性任务 |
优先级调度 | 条件判断优先级 | 混合型系统 |