<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>autosar on Kohsruhe</title><link>https://www.kohsruhe.com/zh/tag/autosar/</link><description>Recent content in autosar on Kohsruhe</description><generator>Hugo -- gohugo.io</generator><language>zh</language><managingEditor>kohsruhe@outlook.com (Leehyon HNG)</managingEditor><webMaster>kohsruhe@outlook.com (Leehyon HNG)</webMaster><lastBuildDate>Tue, 15 Sep 2026 10:24:26 +0800</lastBuildDate><atom:link href="https://www.kohsruhe.com/zh/tag/autosar/index.xml" rel="self" type="application/rss+xml"/><item><title>借助 UML Model 深入 AUTOSAR BSW</title><link>https://www.kohsruhe.com/zh/2026/09/autosar-bsw-uml-model/</link><pubDate>Tue, 15 Sep 2026 10:24:26 +0800</pubDate><author>kohsruhe@outlook.com (Leehyon HNG)</author><guid>https://www.kohsruhe.com/zh/2026/09/autosar-bsw-uml-model/</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;这是 AUTOSAR 学习系列番外的番外篇。在上一篇的结尾有提到过可以用 EA 看官方模型，仔细查看后发现，官方模型是不可多得的学习材料，值得再深入讲讲。&lt;/p&gt;
&lt;p&gt;相比晦涩的 SWS 文本规范，图形能帮我们在脑海中瞬间建立直观骨架。本文梳理如何利用官方 UML Model 建立 AUTOSAR BSW 的整体认知。&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="背景">背景</h2>
<p>这是 AUTOSAR 学习系列番外的番外篇。在上一篇的结尾有提到过可以用 EA 看官方模型，仔细查看后发现，官方模型是不可多得的学习材料，值得再深入讲讲。</p>
<p>相比晦涩的 SWS 文本规范，图形能帮我们在脑海中瞬间建立直观骨架。本文梳理如何利用官方 UML Model 建立 AUTOSAR BSW 的整体认知。</p>
<h3 id="什么是-autosar-bsw-uml-model">什么是 AUTOSAR BSW UML Model</h3>
<p>AUTOSAR 官方在发布 CP 规范包时，除了 PDF 规范外，还会随附一份 UML 模型（通常是 <code>MOD</code> 类文档，如 <code>AUTOSAR_MOD_BSWUMLModel.zip</code>）。它本质上是所有 BSW SWS 规范中架构图、时序图与类图的「设计母版」：</p>
<ul>
<li><strong>静态结构</strong>：完整定义了各 BSW 模块的组件关系、对外提供/引用的接口、API 签名与数据类型</li>
<li><strong>动态行为</strong>：包含典型场景下的跨模块交互时序图与核心模块的状态机</li>
<li><strong>可追溯性</strong>：在 EA 中所有元素均有关联关系，支持双向跳转与依赖反查，要比翻阅 PDF 高效</li>
</ul>
<h2 id="准备工作">准备工作</h2>
<ol>
<li><strong>获取官方模型</strong>：访问 <a href="https://www.autosar.org/search">Search AUTOSAR</a>，搜索 <code>BSW UML Model</code>，在 Doc Type 中筛选 <code>MOD</code> 下载。</li>
</ol>
<p><img src="https://images.kohsruhe.com/2026/autosar-search-bswuml.png" alt="autosar-search-bswuml"></p>
<ol start="2">
<li><strong>安装查看工具</strong>：解压后找到 <code>.eap</code> 并使用 Enterprise Architect 打开<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。</li>
</ol>
<ol start="3">
<li><strong>建立学习副本</strong>：保留一份未修改的原始副本。若需要在模型中添加标注或自定义视图，建议新建独立的根包（如 <code>Learning_Sandbox</code>），不要直接更改官方包结构。</li>
</ol>
<h2 id="模型目录">模型目录</h2>
<p><img src="https://images.kohsruhe.com/2026/autosar-bswproject.png" alt="autosar-bswproject"></p>
<p>模型工程树内容庞大，不必逐个展开阅读，重点聚焦以下 4 个核心入口：</p>
<pre class="mermaid">mindmap
  root((BSW UML Model))
    OverallViews[&#34;Overall Views&lt;br/&gt;宏观全景&#34;]
    InteractionViews[&#34;Interaction Views&lt;br/&gt;跨模块动态交互&#34;]
    SoftwarePackages[&#34;Software Packages&lt;br/&gt;模块静态定义与 API&#34;]
    DocumentationDrawings[&#34;Documentation Drawings&lt;br/&gt;核心状态机与辅助图&#34;]</pre><h3 id="overall-views">Overall Views</h3>
<p>这里通常放 AUTOSAR 分层架构、BSW 模块分布和模块之间的宏观依赖。</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-packages.png" alt="autosar-packages"></p>
<p><img src="https://images.kohsruhe.com/2026/autosar-dependencies.png" alt="autosar-dependencies"></p>
<h3 id="interaction-views">Interaction Views</h3>
<p>这里主要是跨模块的时序图。</p>
<blockquote>
<p>官方建模指南规定，Interaction Views 用于放置不同模块之间的交互时序图，并按软件栈组织；这些时序图用于表现 BSW 模块之间的典型用例，并被纳入对应 SWS。</p>
</blockquote>
<p>当你想理解“一帧报文如何收发”、“一次诊断请求如何响应”、“一次 NvM 数据如何异步读写”时，应优在这里找找：</p>
<ul>
<li><strong>典型时序</strong>：主控调用链路与模块流转</li>
<li><strong>调用性质</strong>：区分同步轮询、同步阻塞与异步回调</li>
<li><strong>异常流向</strong>：如超时、校验失败、Bus-off 等异常分支的触发与通知机制</li>
</ul>
<p>比如，下面是模拟 EEPROM（Fee_Write）的写时序图，描述的是 NvM 发起一次写请求，经过 MemIf → Fee<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> → Fls，最终把数据写入 Flash，并通过 JobEndNotification 逐层通知完成。</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-feewrite.png" alt="autosar-feewrite"></p>
<p>对应的，这是真实 EEPROM（Ea_Write）的写时序图：</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-eawrite.png" alt="autosar-eawrite"></p>
<p>对比两张时序图会发现，Fee 的复杂度要高于 Ea：</p>
<ul>
<li>Ea 更像一个转发模块：EEPROM 物理特性支持字节级随机读写与原地覆盖。因此 Ea 只需做 32 位逻辑地址到物理偏移的线性映射，将 NvM 的请求打包转发给底层的 Eep 驱动，调用链很平直</li>
<li>Fee 是一个真正的内部状态机模块：Flash 物理特性决定其不能原地覆盖，必须“先按扇区擦除、再按页写入”，且擦写寿命有限。为了在只支持块擦除的 Flash 上“模拟”出 EEPROM 的随机读写能力，Fee 内部必须依赖复杂的状态机驱动，包括动态映射、扇区轮转、垃圾回收和掉电安全</li>
</ul>
<p>尽管下层机制差异很大，但对于上层的 NvM 来说，通过 MemIf 调用的却是完全相同的 <code>MemIf_Write</code> 接口与异步 Job 模型。NvM 既不需要关心当前操作的是 Flash 还是 EEPROM，更无需理会底层是在做垃圾回收还是在做直接的物理覆写。</p>
<h3 id="software-packages">Software Packages</h3>
<p>当需要落地到代码或查阅具体 API 时，从 Software Packages 进入对应模块包：</p>
<ul>
<li><strong>模块组件</strong>：对外提供的 Required/Provided 接口</li>
<li><strong>API 列表</strong>：函数名称、入参、出参及返回值类型</li>
<li><strong>Callback 规范</strong>：下层向上层通知的统一回调规范</li>
<li><strong>Header File Diagrams</strong>：模块间头文件的包含关系，帮助理清编译依赖</li>
</ul>
<p>比如下图是 Fee 模块的提供的接口图，路径位于 <code>AUTOSAR.SoftwarePackages.ECUAL.MemHwA.Fee.Fee Provided Interfaces</code>：</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-feepif.png" alt="autosar-feepif"></p>
<h3 id="documentation-drawings">Documentation Drawings</h3>
<p>这里放的是状态机和活动图，主要是网络管理与通信控制模块相关的。这些模块往往不是简单的数据转发，状态和模式是理解行为的核心。</p>
<p>比如下图是 DEM 模块处理故障的活动图，可以帮助我们更好理解 Event 从“检测到故障”到“生成 DTC 并存储”的核心流程：</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-demeventstorage.png" alt="autosar-demeventstorage"></p>
<h2 id="学习流程">学习流程</h2>
<p>同阅读 PDF 一样，不建议无目的地漫游模型，还是要以具体的工程问题为切入点：</p>
<ul>
<li>一帧 CAN 报文从应用发出到硬件发送经历了什么？</li>
<li>CAN 报文接收后如何解析并通知到 RTE/SWC？</li>
<li>发生 Bus-off 后，CanSM 与 CanIf 如何协调恢复？</li>
<li>NvM 读取 Block 时底层的异步任务是如何轮询完成的？</li>
<li>ComM 如何协同各个通道的通信模式？</li>
</ul>
<p>推荐参考如下路径展开学习：</p>
<pre class="mermaid">flowchart TD
    Q[&#34;🎯 工程问题驱动&#34;] --&gt; A[&#34;&lt;b&gt;1. Overall Views&lt;/b&gt;&lt;br/&gt;定位涉及模块与分层拓扑&#34;]
    A --&gt; B[&#34;&lt;b&gt;2. Interaction Views&lt;/b&gt;&lt;br/&gt;阅读时序图，理清动静态交互主线&#34;]
    B --&gt; C[&#34;&lt;b&gt;3. Software Packages&lt;/b&gt;&lt;br/&gt;查阅关键 API、Callback 与参数类型&#34;]
    C --&gt; D[&#34;&lt;b&gt;4. 对应模块 SWS&lt;/b&gt;&lt;br/&gt;核对详细时序要求、返回值与配置项约束&#34;]
    D --&gt; E[&#34;&lt;b&gt;5. 工具配置与代码生成&lt;/b&gt;&lt;br/&gt;结合 DaVinci / EB Tresos 及生成的代码验证&#34;]</pre><h2 id="总结">总结</h2>
<p>AUTOSAR BSW UML Model 最大的价值，倒不在于具体画了多少张图，而是把散落在几十个 SWS 规范里的模块、接口、数据类型和状态机，串成了一张能随时点击、跳转和导航的全局地图。比起直接硬啃大段的英文规范，先看图理顺逻辑确实要友好得多。</p>
<p>另外，如果你平时工作里也用 EA 做软件设计和架构，官方这份工程也是现成的参考样本<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>。</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Enterprise Architect 首次打开会提示 Project Transfer 并创建一个新的 <code>.qea</code> 文件&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Flash EEPROM Emulation&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>本人还是习惯 Diagrams as Code，比如 Mermaid 或 PlantUML&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>高效阅读 AUTOSAR 官方文档</title><link>https://www.kohsruhe.com/zh/2026/09/how-to-read-autosar-specifications/</link><pubDate>Thu, 10 Sep 2026 10:33:31 +0800</pubDate><author>kohsruhe@outlook.com (Leehyon HNG)</author><guid>https://www.kohsruhe.com/zh/2026/09/how-to-read-autosar-specifications/</guid><description>&lt;p&gt;本文是 AUTOSAR 系列的番外篇。深入学习 AUTOSAR，终究离不开官方规范。但面对其庞杂的文档体系，往往容易让人无从下手，因此有必要专门梳理一下官方文档的阅读方法。&lt;/p&gt;</description><content:encoded><![CDATA[<p>本文是 AUTOSAR 系列的番外篇。深入学习 AUTOSAR，终究离不开官方规范。但面对其庞杂的文档体系，往往容易让人无从下手，因此有必要专门梳理一下官方文档的阅读方法。</p>
<h2 id="文档入口">文档入口</h2>
<p>从下面这个地址可以直达，左边可以做过滤，比如释放版本、文档类型、模块等等。</p>
<ul>
<li><a href="https://www.autosar.org/search">Search AUTOSAR</a></li>
</ul>
<p><img src="https://images.kohsruhe.com/2026/autosar-doc-entry.png" alt="autosar-doc-entry"></p>
<p>目前，提供的文档主要有以下几大类：</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center">缩写</th>
          <th style="text-align: left">英文全称</th>
          <th style="text-align: left">文档主要内容</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center">RS</td>
          <td style="text-align: left">Requirements Specification</td>
          <td style="text-align: left">平台级、功能级或领域的总体需求</td>
      </tr>
      <tr>
          <td style="text-align: center">SRS</td>
          <td style="text-align: left">Software Requirements Specification</td>
          <td style="text-align: left">对一组软件模块提出的公共软件需求</td>
      </tr>
      <tr>
          <td style="text-align: center">SWS</td>
          <td style="text-align: left">Software Specification</td>
          <td style="text-align: left">某个具体软件模块的完整规范（API、状态机、配置）</td>
      </tr>
      <tr>
          <td style="text-align: center">TPS</td>
          <td style="text-align: left">Template Specification</td>
          <td style="text-align: left">系统模板、方法论、数据交换和配置模型规范</td>
      </tr>
      <tr>
          <td style="text-align: center">EXP</td>
          <td style="text-align: left">Explanatory Document</td>
          <td style="text-align: left">对复杂概念、架构或规范使用方式的解释</td>
      </tr>
      <tr>
          <td style="text-align: center">TR</td>
          <td style="text-align: left">Technical Report</td>
          <td style="text-align: left">发布说明、术语表、补充材料及非规范性报告</td>
      </tr>
      <tr>
          <td style="text-align: center">MOD</td>
          <td style="text-align: left">Model</td>
          <td style="text-align: left">AUTOSAR 模型、蓝图或模型数据</td>
      </tr>
      <tr>
          <td style="text-align: center">MMOD</td>
          <td style="text-align: left">Meta Model</td>
          <td style="text-align: left">AUTOSAR 元模型及其生成产物</td>
      </tr>
  </tbody>
</table>
<h3 id="rs-requirements-specification">RS: Requirements Specification</h3>
<p>RS 通常是比较高层的需求文档，回答 AUTOSAR 为什么需要这个能力，以及这个能力总体上必须满足什么要求？这类文档一般不会告诉你某个 API 的参数如何定义，而是描述功能目标、使用场景、系统约束、安全性和兼容性要求等。</p>
<h3 id="srs-software-requirements-specification">SRS: Software Requirements Specification</h3>
<p>SRS 比 RS 更接近软件架构层，但通常还不是某个具体模块的最终实现规范。SRS 经常定义某类基础软件模块共享的软件需求，比如通信、诊断、存储等相关的公共需求。</p>
<h3 id="sws-software-specification">SWS: Software Specification</h3>
<p>这是做 BSW 开发时最常阅读的文档类型。SWS 通常包含：模块职责与边界、依赖关系、API 定义、数据类型、状态机或行为描述、错误处理、配置参数等等。</p>
<h3 id="exp-explanatory-document">EXP: Explanatory Document</h3>
<p>EXP 是解释性文档，主要帮助读者理解规范背后的概念和使用方式，它往往比 SWS 更适合入门，但通常不作为开发符合性判断的唯一依据。建议的阅读顺序：</p>
<pre class="mermaid">flowchart TD
    A[&#34;&lt;b&gt;💡 先读 EXP &lt;/b&gt;&lt;br/&gt;建立整体概念，理解背景与设计初衷&#34;]
    --&gt; B[&#34;&lt;b&gt;🎯 再读 RS / SRS &lt;/b&gt;&lt;br/&gt;追溯需求来源与上层约束，明确功能边界&#34;]
    --&gt; C[&#34;&lt;b&gt;🔍 最后读 SWS / TPS &lt;/b&gt;&lt;br/&gt;查阅精准实现规则，掌握 API 定义、状态机及配置参数&#34;]</pre><p>对于大多数使用成熟工具进行 AUTOSAR 配置和集成的工程师而言，没有必要系统阅读全部 AUTOSAR 官方文档。实际工作通常以工具厂商提供的技术文档、User Manual 和集成指南为主，并在需要确认模块标准行为时查阅对应的 SWS。</p>
<p>对于 AUTOSAR 工具开发者、BSW 或 MCAL 开发者，以及需要手写 CDD 或其他 AUTOSAR 相关代码的工程师，则需要根据具体问题进一步阅读 SWS、TPS、MMOD 等文档，理解接口行为、配置模型、协议规则和工具生成逻辑。</p>
<h2 id="开发阅读建议">开发阅读建议</h2>
<p>没有人会把 2 万多页<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>的 AUTOSAR 规范当成长篇小说从头读到尾。真这么读，大概率在术语定义和版权声明里就被劝退了。</p>
<blockquote>
<p>理解 AUTOSAR，首先要认识到它是一套标准化规范，而不是某个具体的软件实现。阅读时，核心是厘清它规定了什么、约束了什么，以及哪些内容由具体实现自行决定。</p>
</blockquote>
<h3 id="区分标准厂商与项目">区分标准、厂商与项目</h3>
<p>实际开发中，我们接触最多的通常不是 AUTOSAR 规范本身，而是 Vector、EB 或芯片厂商提供的配置工具、基础软件和参考文档。遇到行为异常或联调争议时，查规范最大的价值在于区分责任边界：</p>
<pre class="mermaid">flowchart TD
    Issue[&#34;现场问题 / 行为分歧&#34;] --&gt; Q{&#34;根因在哪个层面？&#34;}
    Q --&gt;|&#34;标准规定&#34;| SWS[&#34;&lt;b&gt;AUTOSAR 规范&lt;/b&gt;&lt;br/&gt;标准强制要求还是可选推荐？&#34;]
    Q --&gt;|&#34;厂商实现&#34;| Vendor[&#34;&lt;b&gt;供应商 Technical Reference&lt;/b&gt;&lt;br/&gt;厂商私有扩展还是已知限制？&#34;]
    Q --&gt;|&#34;工程配置&#34;| Project[&#34;&lt;b&gt;项目 ARXML / Cfg&lt;/b&gt;&lt;br/&gt;参数配错还是集成逻辑有误？&#34;]</pre><ul>
<li><strong>标准规定</strong>：AUTOSAR SWS 明确规定的强制性要求，例如标准返回码、API 行为、状态机及其跳转条件</li>
<li><strong>供应商选择</strong>：标准未强制约束或明确允许自行实现的部分，由供应商根据产品架构作出选择，例如内部缓冲队列机制、资源管理策略和扩展 callout</li>
<li><strong>项目决定</strong>：由 OEM / Tier 1 或具体项目根据系统需求确定的参数和策略，通常通过 ARXML、生成配置、集成代码</li>
</ul>
<p>分清这三个层次，才能知道应该查 AUTOSAR SWS、供应商技术文档，还是项目的 ARXML、生成代码与集成逻辑。</p>
<h3 id="sws-定模块边界">SWS 定模块边界</h3>
<p>很多时候，弄清楚一个模块 <strong>不负责什么</strong>，比记住它负责什么更重要。初学者最容易把模块的职责想得过宽：</p>
<ul>
<li><strong>PduR</strong> 只负责 PDU 级别的路由分发，<strong>但不解析其中的 signal</strong></li>
<li><strong>ComM</strong> 负责协调通信模式，<strong>但不直接操作底层 controller</strong></li>
<li><strong>NvM</strong> 负责高层非易失数据块的排队与管理，<strong>但不直接擦写 flash</strong></li>
<li><strong>RTE</strong> 负责组件解耦与数据搬运，<strong>但不负责底层任务调度</strong></li>
</ul>
<p>当你对模块产生边界模糊时，在 <strong>SWS</strong> 翻到它向谁提供接口、又依赖谁的接口，职责边界自然就水落石出。</p>
<h3 id="sws-重点看什么">SWS 重点看什么</h3>
<p>一份 SWS 动辄数百页，但工程开发最常用的内容主要集中在四个部分：</p>
<pre class="mermaid">flowchart LR
    A[&#34;&lt;b&gt;Chapter 5&lt;/b&gt;&lt;br/&gt;Dependencies&lt;br/&gt;理清上下游依赖&#34;]
    --&gt; B[&#34;&lt;b&gt;Chapter 7&lt;/b&gt;&lt;br/&gt;Functional Spec&lt;br/&gt;掌握状态机与时序&#34;]
    --&gt; C[&#34;&lt;b&gt;Chapter 8&lt;/b&gt;&lt;br/&gt;API Spec&lt;br/&gt;看接口分类与签名&#34;]
    --&gt; D[&#34;&lt;b&gt;Chapter 10&lt;/b&gt;&lt;br/&gt;Configuration&lt;br/&gt;对应工具配置项&#34;]</pre><p><img src="https://images.kohsruhe.com/2026/autosar-sws-chapters.png" alt="autosar-sws-chapters"></p>
<ol>
<li>
<p><strong>Dependencies to other modules</strong><br>
先看模块依赖谁、又被谁依赖，确定它在软件栈中的位置和职责边界。</p>
</li>
<li>
<p><strong>Functional specification</strong><br>
这是 SWS 的核心。重点关注：</p>
<ul>
<li><strong>状态机</strong>：模块有哪些生命周期状态？什么条件触发跳转？</li>
<li><strong>MainFunction 与运行时序</strong>：周期函数里究竟在干什么？异步任务的 Job 是如何处理的？</li>
</ul>
</li>
<li>
<p><strong>API specification</strong><br>
不必死记每个函数的参数，先按用途理解接口：</p>
<ul>
<li>初始化（<code>Init</code> / <code>DeInit</code>）</li>
<li>控制与请求（<code>RequestMode</code> / <code>Transmit</code>）</li>
<li>回调通知（<code>RxIndication</code> / <code>TxConfirmation</code>）</li>
<li>周期调度（<code>MainFunction</code>）</li>
</ul>
</li>
<li>
<p><strong>Configuration specification</strong><br>
配置工具中的复选框、下拉列表和数值参数，通常都能在这里找到对应的标准定义与约束。遇到不理解的配置项，直接按参数名全文搜索即可。</p>
</li>
</ol>
<h3 id="问题驱动而非页码驱动">问题驱动，而非页码驱动</h3>
<p>AUTOSAR 规范不适合漫无目的地通读。更有效的方法是先建立骨架，再带着问题查细节。</p>
<p><strong>第一遍：30 分钟建立骨架</strong></p>
<p>暂时跳过 API、配置参数和需求细节，只回答四个问题：</p>
<ol>
<li>模块解决什么问题？</li>
<li>模块负责什么，不负责什么？</li>
<li>模块与哪些上下游交互？</li>
<li>模块依靠状态机、数据流还是调用链运行？</li>
</ol>
<p><strong>第二遍：带着问题按图索骥</strong></p>
<p>在设计、配置、编码或排错时，把问题具体化为某个接口、状态、配置项或运行场景，再回到 SWS 中精准查找。</p>
<h3 id="pdf-之外也可以看模型">PDF 之外，也可以看模型</h3>
<p>AUTOSAR 的部分发布包包含模型文件，可以使用 Enterprise Architect（EA） 工具打开并查看其中的 UML 图，包括模块依赖、接口关系、状态机和时序图。</p>
<p>下图是使用 EA 打开的 <code>AUTOSAR_MOD_BSWUMLModel.zip</code>。如果平时使用 EA 进行软件架构设计，这套 AUTOSAR UML 模型是很有价值的学习材料。</p>
<p><img src="https://images.kohsruhe.com/2026/autosar-eauml.png" alt="autosar-eauml"></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>有人做过统计，单 CP 平台的一个版本（22-11）就有 210 个文件，总页数超过 21913&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item></channel></rss>