Autosar Os新手入门

AUTOSAR OS 按照功能职责可划分为8 大核心模块,各模块相互协作,共同实现实时操作系统的完整功能。这些模块在 AUTOSAR 规范中被明确定义,确保不同厂商的 OS 实现具备一致性和兼容性。以下会根据各模块进行详细说明:

任务管理模块(Task Management)

任务

Autosar Os中的任务有两种:基本任务 和拓展任务。

基本任务(Basic Task)
  • 特点:执行完后自动进入挂起态,不能等待事件(无 "等待态")。
  • 适用场景:简单的周期性任务(如 "LED 闪烁""日志打印")。
  • 生命周期:激活 → 运行 → 终止(挂起)。
扩展任务(Extended Task)
  • 特点 :可通过WaitEvent进入等待态,事件触发后自动激活,适合复杂逻辑。
  • 适用场景:需要等待外部信号的任务(如 "等待 CAN 报文接收后处理")。
  • 关键区别:拥有 "等待态",可通过事件(Event)驱动状态转换。

Tsak和OS-Application的关系

OS-Application的定义:Os-Application(简称 "应用")是 AUTOSAR OS 中最小的隔离单元,本质是一组相关资源的集合,包含:任务(如 "传感器采集任务""控制逻辑任务");中断服务程序(ISR,如 CAT2 中断);资源(如专用内存缓冲区、硬件接口);计数器、闹钟等时间资源。

Task必须从属于某个Os-Application,不能独立存在。

一个Os-Application可以包含多个Task任务(如 "自动驾驶应用" 包含 "环境感知任务""决策任务""控制任务"),这些任务共享该应用的资源(如内存区域、权限),但受限于应用的隔离边界。

Os-Application的分类

Os-Application又可分为可信和不可信。

二者区别如下:

可信os-app:可调用所有 OS 服务,可访问其他应用的资源,安全限制少

不可信os-app:禁止调用特权服务,仅能访问自身专属的内存区域,调用 OS 服务时需通过 "陷阱机制"(Trap)由内核代劳,防止越权操作。

当一个os-app是可信时,并且系统通过显式配置对其授予了跨应用访问权限时,它可以访问其他 Os-Application 的资源。

中断管理模块(Interrupt Management)

Autosar Os中断分为两类:一类中断和二类中断。

任何中断的优先级都比任务高

Category 1(CAT1):快速响应中断

核心特点:

执行时间极短(通常微秒级),仅做最基础的硬件操作(如读取寄存器、清除标志);

禁止调用任何 OS 服务(如ActivateTask、GetResource),不能依赖 OS 调度;

优先级最高,不可被任务或 CAT2 中断抢占。

适用场景:对实时性要求极高的硬件响应(如电机过流保护、电源故障)。

Category 2(CAT2):可调度中断

核心特点:

可执行稍复杂的逻辑(如数据缓存、触发任务激活);

允许调用部分 OS 服务(如ActivateTask、ClearPendingInterrupt);

优先级低于 CAT1,但高于任务,可被 CAT1 中断抢占。

时间管理模块(Time Management)

计数器(Counter):系统的 "时钟"

计数器是单调递增的整数变量,由硬件定时器驱动,按固定频率递增(如每 1ms 加 1),为系统提供时间基准。

关键特性

计数周期:两次递增的时间间隔(如 1ms),由硬件定时器决定,精度固定;

溢出处理:达到MaxAllowedValue后归零,可配置OverflowHook处理溢出事件;

可读性:应用可通过 API 读取当前值(如GetCounterValue)。

计数器分类

系统计数器:OS 核心计数器(如SystemCounter),为调度表、时序保护提供基准;

用户计数器:应用自定义计数器(如SensorCounter),用于特定功能的定时。

计数器与闹钟的关系

一对一 / 多对一:一个计数器可关联多个闹钟(如SensorCounter可绑定 "采集闹钟" 和 "校验闹钟");

依赖关系:闹钟必须绑定到一个计数器,无法独立工作;

生命周期:计数器停止时,关联的闹钟也停止触发。

闹钟(Alarm):时间的 "触发器"

闹钟是基于计数器的定时触发器,当计数器达到预设值时,自动执行指定动作(如激活任务、设置事件)。

资源管理模块(Resource Management)

相关推荐
车软学堂1 天前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
车软学堂1 天前
CANoe自动化:跑起第一个测试用例
运维·车载系统·自动化·汽车·测试用例
AiNightVision2 天前
星光级 是什么?——星光级摄像机是什么?0.001Lux 照度门槛与选型真相
人工智能·算法·车载系统·自动驾驶·无人机·视频·智能硬件
OpenAnolis小助手2 天前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
硅基手札3 天前
操作系统设计思想系列 13 · NuttX 深度 — POSIX 飞控底座 + RTOS 群像
架构·操作系统·嵌入式开发·ecos·sel4·nuttx
分享资料3 天前
波特率和比特率的区别
车载系统
2CM_Embed4 天前
μC/OS-II 任务管理详解(三):任务创建、任务栈、删除、优先级修改与挂起恢复
操作系统
硅基手札4 天前
操作系统设计思想系列 11 · ThreadX 深度 — 预抢占阈值·认证型设计
操作系统·开源项目·嵌入式开发·嵌入式操作系统·设计思想·threadx
云计算练习生4 天前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
硅基手札5 天前
操作系统设计思想系列 10 · VxWorks 深度 — 硬实时旗舰·完全抢占内核
操作系统·实时操作系统·嵌入式开发·vxworks·设计思想