目录
- 1 简介
- 1.1 架构概览
- 2 功能描述
- 2.1 特性
- 2.2 规范偏离
- 2.2.1 API 函数的泛型偏离
- 2.2.2 可信函数 API 偏离
- 2.2.3 服务保护偏离
- 2.2.4 代码保护
- 2.2.5 SyncScheduleTable API 偏差
- 2.2.6 CheckTask/ISRMemoryAccess API 偏差
- 2.2.7 中断 API 偏差
- 2.2.8 Cross Core Getter API
- 2.2.9 IOC
- 2.2.10 栈冲突时返回值
- 2.2.11 OS内部错误的处理
- 2.2.12 强制终止应用程序
- 2.2.13 OS配置
- 2.2.14 自旋锁
- 2.3 栈
- 2.3.1 Task栈共享
- 2.3.1.1 描述
- 2.3.1.2 启动
- 2.3.1.3 使用
- 2.3.2 ISR栈共享
- 2.3.2.1 描述
- 2.3.2.2 启动
- 2.3.2.3 使用
- 2.3.3 栈检查策略
- 2.3.4 软件栈检查
- 2.3.4.1 描述
- 2.3.4.2 启动
- 2.3.4.3 使用
- 2.3.5 MPU栈监控
- 2.3.5.1 描述
- 2.3.5.2 启动
- 2.3.5.3 使用
- 2.3.6 栈消耗测量
- 2.3.6.1 描述
- 2.3.6.2 启动
- 2.3.6.3 使用
- 2.4 中断
- 2.4.1 中断处理API
- 2.4.2 中断等级
- 2.4.3 中断向量表
- 2.4.4 二类中断嵌套
- 2.4.4.1 描述
- 2.4.4.2 启动
- 2.4.5 一类中断
- 2.4.5.1 一类中断的实现
- 2.4.5.2 一类中断嵌套
- 2.4.5.3 StartOS前的一类中断
- 2.4.6 中断源初始化
- 2.4.7 未处理的中断
- 2.4.8 未处理的系统调用
- 2.5 异常
- 2.5.1 异常向量表
- 2.5.2 未处理的异常
- 2.6 定时器
- 2.6.1 描述
- 2.6.2 启动
- 2.6.3 使用
- 2.6.4 依赖
- 2.7 周期中断定时器(PIT)
- 2.7.1 描述
- 2.7.2 启动
- 2.8 高分辨率定时器(HRT)
- 2.8.1 描述
- 2.8.2 启动
- 2.9 PIT HRT对比
- 2.10 启动
- 2.11 单核启动
- 2.11.1 单核系统
- 2.11.2 多核系统
- 2.11.2.1 SC1 / SC2 系统示例
- 2.11.2.2 SC3 / SC4 系统的多核示例
- 2.12 多核启动
- 2.12.1 SC1 / SC2 系统中的多核启动示例
- 2.12.2 SC3 / SC4 系统中的多核启动示例
- 2.13 故障处理
- 2.14 错误报告
- 2.14.1 服务 ID 的扩展
- 2.14.2 MICROSAR OS 错误代码的扩展
- 2.14.3 详细错误代码
- 2.15 多核
- 2.15.1 调度和分派
- 2.15.2 多核数据概念
- 2.15.3 X-Signal
- 2.15.4 主/从核心
- 2.15.5 硬件初始化核心
- 2.15.6 多核系统的启动
- 2.15.7 自旋锁
- 2.15.7.1 自旋锁的链接
- 2.15.8 缓存
- 2.15.9 关闭
- 2.15.9.1 单个核心的关闭
- 2.15.9.2 所有核心的关闭
- 2.15.9.3 保护违规期间的关闭
- 2.16 调试
- 2.16.1 描述
- 2.16.2 启动
- 2.16.3 ORTI调试
- 2.16.3.1 ORTI(OSEK Runtime Interface)
- 2.17 内存保护
- 2.17.1 MPU的使用
- 2.17.2 配置方面
- 2.17.2.1 静态MPU区域
- 2.17.2.2 动态MPU区域
- 2.17.2.3 无干扰性
- 2.17.3 堆栈监控
- 2.17.4 保护违规处理
- 2.17.5 优化/快速的MPU处理
- 2.17.6 推荐配置
- 2.18 内存访问检查
- 2.18.1 描述
- 2.18.2 启动
- 2.18.3 使用
- 2.18.4 依赖关系
- 2.19 时间保护
- 2.19.1 描述
- 2.19.2 启动
- 2.19.3 使用
- 2.20 IOC
- 2.20.1 描述
- 2.20.2 非排队通信(最新即最好)
- 2.20.2.1 1:1 通信模式
- 2.20.2.2 N:1 通信模式
- 2.20.2.3 N:M 通信模式
- 2.20.3 排队通信
- 2.20.4 通知
- 2.20.5 特点
- 2.20.5.1 N:1 排队通信
- 2.20.5.2 IOC 自旋锁
- 2.20.5.3 通知
- 2.20.5.4 复杂数据类型
- 2.21 受信任OS Applications
- 2.21.1 启用内存保护的受信任OS应用
- 2.21.1.1 描述
- 2.21.1.2 启用步骤
- 2.21.1.3 依赖关系
- 2.21.2 用户模式下的受信任OS应用
- 2.21.2.1 描述
- 2.21.2.2 启用步骤
- 2.21.2.3 依赖关系
- 2.21.3 受信任函数
- 2.22 OS Hooks
- 2.22.1 运行时上下文
- 2.22.2 嵌套行为
1 简介
本文主要描述了AUTOSAR OS在Davinci Configurator配置中的一些应用,严格意义上来说,这里应该叫MICROSAR OS,因为Vector对AUTOSAR OS进行了一些自己的优化。说到这里,不得不赞叹Vector对行业的积累和对ECU开发的理解,这也更印证了我们以Davinci Configurator开始学习AUTOSAR的初衷——让大家更好的理解和上手AUTOSAR。
简单来讲,AUTOSAR OS主要用途是给基础软件模块和应用层SWC提供一个调度环境,用来管理中断、任务、异常的处理。在实际应用过程中,我们更关心的是对Task/ISR堆栈大小的配置、为Task/ISR分配优先级、根据不同runnable的周期分配Task、根据功能安全等级要求使用OS Application进行分区、配置调度表和中断映射等等。
阅读本文需要对OSEK OS和AUTOSAR OS的基础知识有一定的了解,这里博主已经在补充篇里的:
- 【补充篇】AUTOSAR多核OS介绍(上)
- 【补充篇】AUTOSAR多核OS介绍(