一、板级支持包BSP
BSP是介于主板硬件和操作系统驱动层之间的一层,一般任务属于操作系统的一部分
主要为操作系统提供底层硬件支持,并为上层驱动程序提供访问硬件设备寄存器的函数包
BSP的两个重要特点
| 特点 | 含义 |
|---|---|
| 硬件相关性 | BSP 必须针对具体硬件提供操作和控制方法 |
| 操作系统相关性 | 不同操作系统有不同的软件层次结构,BSP 需要按特定操作系统的接口形式实现 |
主要功能
- 单板硬件初始化,尤其是CPU、内存、时钟、中断等
- 提供设备驱动程序和系统中断服务程序
- 定制操作系统功能,提供实时多任务运行环境
- 初始化操作系统,为内核运行做好准备
BSP通常包括Bootloader和设备驱动程序
二、嵌入式软件分层架构
从下到上:
| 层次 | 主要职责 |
|---|---|
| 硬件层 | CPU、存储器、I/O 接口、传感器等物理部件 |
| 抽象层 | 硬件抽象层 HAL、板级支持包 BSP,屏蔽硬件差异 |
| 操作系统层 | 任务调度、存储管理、通信管理、时间管理等 |
| 中间件层 | 提供文件系统、网络协议栈、数据库、图形界面等通用服务 |
| 应用层 | 实现具体业务功能 |
其中,抽象层的核心价值是实现可移植性的:上层软件不直接依赖具体硬件
安全攸关软件与DO-178B等级
IEEE将安全攸关软件定义为:用于一个系统中,可能导致不可接受分险的软件
DO-178B/DO-178C 中软件安全等级通常分为 A~E 五级
| 等级 | 失效状态 | 说明 |
|---|---|---|
| A 级 | 灾难性 | 可能导致飞机失控、人员死亡或无法安全飞行着陆 |
| B 级 | 危害性/危险级 | 严重削弱飞行或控制能力,造成重大伤害 |
| C 级 | 严重/重大 | 显著降低运行能力或增加机组工作负荷 |
| D 级 | 不严重/轻微 | 对安全影响较小,仅造成轻微不便 |
| E 级 | 无影响 | 失效不影响飞机运行能力或机组工作负荷 |
软件综合过程:软件验证过程、软件配置管理过程、软件质量保证过程、审定联络过程
四、嵌入式系统关键特性
- 可裁剪性:根据系统功能需求增减模块,删除不需要的软件,使系统更紧凑
- 高确定性:行为可预先规划、不随时间、状态变化而不可预测
- 核心性能指标:功耗、响应时间、吞吐量
- 可靠性指标:MTBF(平均无故障时间),在工业控制、汽车电子等场景中非常重要
五、强实时系统与实时系统
强实时系统
强实时系统必须在规定的截止时间前完成响应;一旦超时,无论超出多少,都视为系统彻底失败。其核心要求是最坏情况响应时间
实时系统的一般特性
- 时间约束性
- 可预测性
- 高可靠性
- 与外部环境交互
- 多任务类型
- 约束复杂
- 可能具有短暂超载特性
六、嵌入式实时操作系统 RTOS
采用嵌入式实时操作系统的主要理由:
- 操作系统提供的任务调度机制能有效管理多周期任务
- 事件、信号、消息等通信机制能解决资源共享中的互斥问题
- 使用商品化RTOS可提高可靠性,降低开发成本,提高开发效率
选择 RTOS 时应重点考虑:
- 任务上下文切换时间短
- 中断响应速度快
- 内核占用空间小
- 服务接口丰富、开放性好
- 可靠性保障能力强
- 支撑环境完善,可配置、可裁剪能力强
七、嵌入式实时系统时间性能评估
主要考虑:
- 操作系统时间开销,一般不大于整个控制系统运行时间总开销的20%
- 所有任务必须在规定时间期限内完成,或进行可调度性分析
- 任务上下文中断时间和响应时间
八、BMTS 消息通信
BMTS 用于从一个计算组件向一个或多个接受组件传输消息,具有高可靠、低延迟、微小抖动等特点
| 消息类型 | 触发方式 | 时延特性 |
|---|---|---|
| 事件触发消息 | 事件发生时产生 | 延迟不确定,可能丢失 |
| 速率约束消息 | 偶发产生,但受最大速率限制 | 承诺不超过最大传输时延 |
| 时间触发消息 | 按精确时间片周期发送接收 | 在指定时间片和确定抖动下传输 |
具有事件触发消息能的总线包括:TTE 总线、FC 总线、AFDX 总线