P0 batch translation: 49 PDFs (General + BSWGeneral + MethodologyAndTemplates)

This commit is contained in:
opencode-translator
2026-06-12 17:31:38 +08:00
parent 43ddcf23e4
commit 0d470d1f17
49 changed files with 48829 additions and 73 deletions
@@ -0,0 +1,283 @@
# AUTOSAR 中断处理说明
> **AUTOSAR CP Release 4.4.0**
>
> 原文:*Explanation of Interrupt Handling within AUTOSAR*(文档 ID 307
>
> 翻译状态:**已完成 v1**
>
> 对应原文 PDF`BSWGeneral/AUTOSAR_EXP_InterruptHandlingExplanation.pdf`
---
## 文档标识
| 字段 | 值 |
|------|-----|
| 文档标题 | AUTOSAR 中断处理说明(Explanation of Interrupt Handling within AUTOSAR |
| 文档标识号 | 307 |
| 文档状态 | 正式版(Final) |
| 所属标准 | Classic Platform |
| 所属版本 | 4.4.0 |
---
## 文档变更历史(节选)
| 日期 | 版本 | 变更说明 |
|------|------|----------|
| 2018-10-31 | 4.4.0 | 编辑性修订 |
| 2017-12-08 | 4.3.1 | 编辑性修订 |
| 2016-11-30 | 4.3.0 | 编辑性修订 |
| 2013-03-15 | 4.1.1 | R4.1 定稿 |
| 2007-12-21 | 3.0.1 | 初始发布 |
---
## 目录
1. 介绍与文档目的
2. 缩略语与简称
3. 相关文档
4. 中断配置概述
5. 中断操作概述
6. 中断操作步骤
7. 中断配置
8. 总结
---
## 1 介绍与文档目的
本文档**解释** AUTOSAR 中断处理的机制和概念。它**不是规范**,而是说明性文档,帮助读者理解 AUTOSAR 如何处理中断。
读者应熟悉:
- OSEK/VDX OS 概念
- AUTOSAR 分层架构
- 微控制器中断机制
---
## 2 缩略语与简称
| 缩略语 | 描述 |
|--------|------|
| ISR | Interrupt Service Routine(中断服务例程) |
| Cat1 | Category 1 interruptOS 不感知的中断) |
| Cat2 | Category 2 interruptOS 感知的中断) |
| OS | Operating System |
| ECU | Electronic Control Unit |
| ICU | Input Capture Unit(输入捕获单元) |
| IRQ | Interrupt Request(中断请求) |
---
## 3 相关文档
| 编号 | 名称 |
|------|------|
| [1] | AUTOSAR_EXP_LayeredSoftwareArchitecture |
| [2] | AUTOSAR_SRS_BSWGeneral |
| [3] | AUTOSAR_SWS_OS |
| [4] | AUTOSAR_SWS_ICUDriver |
| [5] | ISO 17356-3 OSEK/VDX OS |
---
## 4 中断配置概述
AUTOSAR 中断配置涉及**三个层级**:
1. **硬件层**:微控制器的中断控制器(如 NVIC、INTC)
2. **驱动层**:设备驱动(ICU 驱动、Port 驱动等)
3. **OS 层**AUTOSAR OS 管理 Cat2 中断
### 中断源分类
| 中断源 | 示例 | 处理方 |
|--------|------|--------|
| 微控制器外设 | 定时器、ADC、UART | 设备驱动 |
| 通信控制器 | CAN、LIN、FlexRay | 通信驱动 |
| 外部中断 | GPIO、外部传感器 | ICU 驱动 |
---
## 5 中断操作概述
### 5.1 Cat1 与 Cat2 中断的区别
AUTOSAR 区分两种类型的中断:
| 特性 | Cat1 中断 | Cat2 中断 |
|------|----------|----------|
| OS 感知 | ❌ 不被 OS 感知 | ✅ 由 OS 管理 |
| ISR 类别 | 不分类 | 类别 2 |
| 可调用 OS 服务 | 仅允许中断使能/禁用 | 可调用受限的 OS 服务 |
| 由谁实现 | 复杂驱动(CDD)或 BSW 模块 | AUTOSAR OS |
| 用途 | 关键、低延迟、硬件紧密耦合 | 一般外设中断 |
| 入口/出口处理 | 直接由硬件/驱动 | 由 OS 提供(保存/恢复上下文) |
> **核心区别**:Cat2 中断由 OS 管理,可以安全地调用 OS 服务;Cat1 中断绕过 OS,必须自己保存上下文。
---
## 6 中断操作步骤
### 6.1 处理 Cat1 中断
#### 6.1.1 初始状态
- 中断向量已配置
- ISR 已安装(绕过 OS
- 全局中断使能
#### 6.1.2 当硬件请求中断时
1. 硬件自动保存 **部分上下文**(如 PC、SR
2. 跳转到 ISR 入口(无 OS 中介)
3. ISR 内部保存必要的寄存器(编译器/手写)
4. 执行 ISR 主体
- 读取/清除外设中断标志
- 处理中断
5. ISR 内部恢复寄存器
6. 中断返回
**Cat1 ISR 限制**
- 不可调用 OS 服务
- 不可调用任何 OS API
- 不可等待/阻塞
- 应**保持极短**(如 5-10 微秒)
- 不可访问 OS 管理的资源(任务、事件、信号量等)
### 6.2 处理 Cat2 中断
#### 6.2.1 初始状态
- 中断向量已配置(由 OS 启动时设置)
- ISR 由 OS 管理
- 中断优先级已分配
#### 6.2.2 当硬件请求中断时
1. 硬件自动保存 **部分上下文**PC、SR、关键寄存器)
2. 跳转到 OS 提供的 ISR 入口
3. **OS 保存完整上下文**(所有寄存器)
4. OS 调用用户注册的 ISR 函数
5. 执行 ISR 主体
- 允许调用有限的 OS 服务
6. OS 恢复完整上下文
7. 中断返回
**Cat2 ISR 允许的 OS 服务**
- `ActivateTask`
- `SetEvent`
- `GetResource`
- `ReleaseResource`
- `GetAlarm`
- `IncrementCounter`
- `TerminateApplication`(受限)
**Cat2 ISR 限制**
- 不可调用 `Schedule`
- 不可调用 `WaitEvent`(任务级)
- 不可访问某些 OS 资源
- 仍应保持**简短**
---
## 7 中断配置
### 7.1 设备驱动配置和代码
#### 7.1.1 中断处理程序的放置
| 中断类型 | 中断处理程序位置 |
|----------|------------------|
| Cat1 | 由 BSW 模块(如 ICU 驱动)实现,放置在驱动 `.c` 文件中 |
| Cat2 | 由 OS 实现,放置在 OS 配置中(中断向量表) |
### 7.2 OS 配置
#### 7.2.1 中断向量表
OS 启动时按 `Os_Cfg.h` 中的配置初始化中断向量表。Cat2 中断的 ISR 由 OS 在启动时注册。
#### 7.2.2 中断优先级
- **Cat1**:优先级**高于**所有 Cat2 中断(不受 OS 优先级限制)
- **Cat2**:优先级由 OS 管理,**低于** Cat1
#### 7.2.3 中断嵌套
- Cat1 可以**中断** Cat2Cat1 优先级更高)
- Cat2 之间按 OS 优先级嵌套
- Cat1 之间按硬件优先级嵌套
---
## 8 关键概念总结
| 概念 | 说明 |
|------|------|
| **Cat1** | 直接由硬件处理,绕过 OS。**不可调用 OS 服务**。极低延迟。 |
| **Cat2** | 由 OS 包装,**可调用受限 OS 服务**。常规外设中断首选。 |
| **中断优先级** | Cat1 > Cat2。Cat1 中断可中断 Cat2 ISR。 |
| **ISR 长度** | Cat1 应 < 10μsCat2 应 < 100μs(一般)。 |
| **上下文保存** | Cat1:部分(编译器);Cat2:完整(OS)。 |
| **配置位置** | Cat1 在驱动中;Cat2 在 OS 中。 |
---
## 9 中断处理时间线(示例)
### Cat2 中断处理时序
```
硬件事件
[硬件自动保存 PC、SR 等]
[OS 中断入口]
[OS 保存完整上下文]
[调用用户 ISR 主体]
↓ 允许调用受限 OS 服务
├─ 清除中断标志
├─ 读取外设数据
├─ 激活任务 / 设置事件
└─ 释放资源
[OS 恢复完整上下文]
[中断返回]
```
### Cat1 中断处理时序
```
硬件事件
[硬件自动保存 PC、SR]
[直接跳转到 ISR]
[ISR 内部保存其他寄存器]
↓ 禁止调用 OS 服务
├─ 清除中断标志
└─ 处理中断
[ISR 内部恢复寄存器]
[中断返回]
```
---
## 翻译说明
- 本文档为**说明性文档(EXP)**,非规范
- Cat1/Cat2 中断分类是 AUTOSAR 中断处理的核心概念
- 选择 Cat1 还是 Cat2 取决于:延迟要求、是否需要 OS 服务、是否访问 OS 资源
---
*翻译:opencode-translator / Step 3 P0 批量翻译*