
简介面向熟悉AUTOSAR开发体系、尤其是使用Vector公司SIP包进行嵌入式软件集成的工程师这份Word文档系统梳理了AUTOSAR Classic平台软件集成包的核心知识。内容涵盖CBD编号规则及其在技术支持与项目信息追溯中的关键作用说明代码包多次发布的不同背景并逐一拆解Applications、Components、DaVinciConfigurator、Doc、Misc、ThirdParty六大文件夹的用途与定位便于在实际工程中快速找到对应模块和工具同时介绍Snapshot代码包的特殊性与适用前提强调重视文档体系、善用架构总览手册并备份原始文件等开发习惯整体有助于读者构建对Vector代码包从编号到目录、从常规包到快照包的系统认知减少项目初期的盲目摸索。整包仅1个docx文档大小114KB轻量便携便于随时查阅、批注和归档。目前已有184人学习适合刚接触SIP包或希望系统梳理包结构的一线开发与技术支持人员参考。1. SIP 包是什么CBD 号才是你真正要记住的东西第一次拿到 Vector 的 AUTOSAR 交付包多数人第一反应是翻 Applications 里的 Demo 工程但我建议先盯住 CBD 号——这个由年份、序号和交付号组成的主键决定了后续技术支持、补丁升级和需求变更的走向。对嵌入式开发的工程师来说SIP 包Software Integration Package的代码包结构与 CBD 规则是两件最容易被忽略却最影响进度的事。下面把代码包结构拆成六个文件夹讲清楚并标注哪些坑可以提前避开。适合已经拿到或准备拿 SIP 包的 AUTOSAR 工程师也适合第一次接触 Vector 交付包的团队负责人。2. 交付机制CBD 编号规则与 D00/D01 背后的三个重发原因2.1 CBD 编号一组数字等于一份项目档案CBD2200001_D00 这样的编号格式含义要拆成三段看CBD 是 Vector 交付包的固定前缀2200001 里22 代表 2022 年0001 代表当年销售序列号后缀 D00 表示这个订单的第一次正式交付。直接把整串编号复制进技术支持请求里是最稳妥的做法因为内部通过它可以查到客户信息、项目需求、模块组成和版本。也就是说CBD 号不只是包裹订单号还是代码包所有后续服务的索引。实际操作时我一般会把邮件里的 CBD 号和代码包解压后的顶级目录名做一次比对确保二者一致。解压后的安装路径默认是 C:\Vector\CBD220xxxx_D00注意路径里用的是 CBD 号不是项目名。这一步很容易做成“目测一致”其实只要复制粘贴比对一次就能避免后面要找包目录时找不到、或者错误拿旧包当新包的问题。提示CBD 号和包目录不一致时以邮件里的正式编号为准先核对再解压。2.2 同一 CBD 多次交付D00、D01 是怎么产生的同一个 CBD 会看到 D00、D01、D02 甚至更多版本常见原因有三类。第一类是需求变更。首次发包 D00 之后客户硬件外设发生变化或者要新增模块Vector 会按新需求重新组包、重新交付于是出现 D01。注意这里的“变更”不只是芯片引脚变化还可能是从 CAN 换到 CAN FD、新增一个以太网接口这类模块级调整代码包的整体结构和配置项都会随之变动。第二类是缺陷修复。代码包在使用中被发现有 bug维保期内可以免费升级并重新发包维保期外则自费购买升级或修复。判断维保是否过期的依据还是 CBD 号所以不要凭邮件时间想当然更不要用“这个包我去年买的”这种印象去对接。第三类是功能安全场景。D00 通常先发 QM 等级代码包让客户先开发和实现功能等客户配置基本定型后Vector 再 review 一遍配置和需求正式释放 ASIL 等级包。这个 review 过程往往会催生新的 D 序号。对工程师而言最直接的教训是不要看到新 D 号就认为代码变更只是修 bug要同时核对邮件里对应的变更说明否则从 D00 往 D01 迁移配置时容易忽略需求层面的改动。2.3 D00.0 Snapshot 包一份没做完的代码包偶尔会看到 D00.0 这样的编号它是 snapshot 快照包。这种包是在正式包发布之前重要客户通过销售渠道争取到的提前版目的是缩短项目整体进度。Snapshot 包的代价很直接没有经过集成测试部分模块是 beta 状态包里没有参考 Demo 工程和代码。也就是说你拿到的是零散组件但没有一个能直接编译的样板来证明它们能拼起来。这类包只适合非常熟悉 Vector 交付体系、具备从零搭建工程能力的团队。如果团队要用 snapshot 包我的做法是先自查 Components 目录里的模块清单看缺了哪些模块再决定能否并行开发。下面这条命令可以快速列出模块目录实际使用时把路径替换成你自己的包编号# 列出 Components 下的所有模块目录检查 snapshot 包模块完整性 Get-ChildItem -Path C:\Vector\CBD2200001_D00\Components -Directory | Select-Object -ExpandProperty NameGet-ChildItem 是 PowerShell 里列目录的命令-Path 指向代码包 Components 文件夹-Directory 只取文件夹、不列文件Select-Object -ExpandProperty Name 把结果压缩成纯名字列表。这样几十个 BSW 模块排成一列能一眼看出少了哪个。如果发现带 beta 标记的模块偏多就要重新评估并行开发的风险别等集成阶段再翻车。3. 六个文件夹逐个拆Applications、Components、DaVinciConfigurator 的分工3.1 新架构 component-based delivery 下的目录变化现在拿到的 SIP 包多数按 component-based delivery 架构组织和老架构相比只是文件夹收敛归置内容上差别不大。顶层六个文件夹是 Applications、Components、DaVinciConfigurator、Doc、Misc、ThirdParty。理解这套目录核心在于记住三条线Applications 是样板Components 是零件库其余四个文件夹是工具与资料。3.2 Applications拿来即跑的参考 Demo 工程Applications 文件夹里有 Vector 集成测试工程师搭建的参考 Demo 工程包含配置工程、用户代码、芯片启动代码和 MakeFile 编译环境。它的价值首先是验证“工具链是否可用”新机器上装好 DaVinci Configurator 之后先把参考工程编译一次确认许可证、编译器和依赖路径没有问题再谈自己的功能开发。其次是作为移植起点。很多团队第一次集成自家底层代码时都是在参考工程基础上删减而不是从空工程开始。这种做法省时但要求你对参考工程做了什么有把握至少要知道它启用了哪些 BSW 模块。进入工程目录并执行一次干净编译可以用下面这组命令工程名以实际文件夹为准不同交付包有差异# 进入参考 Demo 工程目录清理后重新编译 cd C:/Vector/CBD2200001_D00/Applications/实际工程名 make clean make BUILDreleasemake clean 清掉上次编译产物避免旧目标文件干扰链接make BUILDrelease 指定 release 构建如果交付包支持 debug/release 两种配置release 更适合做基准验证。假如 make 提示找不到编译器先去检查编译器安装路径是否加进了环境变量 PATH这是参考工程编译失败的最常见原因别急着怀疑代码包不完整。3.3 Components按 AUTOSAR 规范组织的 BSW 模块全家桶Components 里是全部 BSW 模块及相关内容的集合大部分目录划分与 AUTOSAR 规范一致。以 CanNm 模块为例它的文件夹里包含 BSWMD 配置描述文件、文档手册、代码生成器文件、静态代码、头文件与库文件以及 MakeFile 编译环境需要的编译文件。也就是说一个模块从配置到生成再到编译所需的东西都收在一个目录里找文件不用跨目录乱翻。使用 Components 时有一个关键习惯改配置后需要重新生成代码而生成器输出会覆盖部分文件。不要手工修改生成器输出的文件万一被覆盖你手改的逻辑就没了。要改模块行为应该在配置工程里改再重新生成。想看某个模块目录里有哪些可用的头文件和库文件可以这样列# 查看 CanNm 模块下的顶层文件包括头文件、库文件和描述文件 Get-ChildItem -Path C:\Vector\CBD2200001_D00\Components\CanNm | Select-Object Name, Length, LastWriteTime这里的 Length 是文件大小LastWriteTime 是最后修改时间。这两个字段在核对交付内容时很有用文件大小为零、或修改时间与其余文件明显不一致的先怀疑传输过程中损坏再谈配置问题。3.4 DaVinciConfigurator工具、模型和平台类型的落点这个文件夹放着 DaVinci Configurator 工具本体以及该代码包配套的 BswmdModel、Platform Types 等文件。BswmdModel 是配置时加载的模块模型它决定了工具界面上能看到哪些可配置项Platform Types 提供编译器相关的类型定义跨编译器移植时常需要关注。首次使用工具时我建议先确认 DaVinci Configurator 版本与代码包要求的版本匹配不匹配会导致打开工程时报模型错误。版本核对信息一般在 Doc 目录的发布说明里不要只看工具自身的关于页版本号。工具装上但打不开工程的场景八成出在这里。4. 文档与扩展Doc、Misc、ThirdParty 的正确打开方式4.1 Doc覆盖九成开发问题的资料夹Doc 是整套代码包里最容易忽视但最有价值的目录。里面有应用开发提醒说明文档、辅助信息文档、代码包发布信息文档、产品发布说明、技术参考手册和用户手册。按我自己的使用经验开发中碰到的问题九成都能在 Doc 里找到对应说明关键是要会用索引。第一次接触 SIP 包的人建议先读 DocumentationGuide_MICROSAR.pdf这份文档会解释各类文档的用途和阅读顺序。之后遇到具体模块的配置疑问先查对应模块的用户手册再查技术参考手册最后才考虑向外部求助。很多同事一遇到配置参数报错就搜关键词其实 Doc 里的参数表才是对当前版本最准确的答案网上搜到的配置项往往来自另一个版本。4.2 Misc平时用不上排查时可能有用的杂项Misc 里是一些和代码包模块无关的内容比如检查工具、脚本、生成器不同代码包内容不尽相同。平时基本用不到但有一个场景我会特意去翻它当怀疑代码生成过程或文件结构出了问题时Misc 里的检查脚本可以帮你对照标准文件结构做自检。注意不要把 Misc 里的文件当成没用就清理掉。某个脚本在后续项目里可能正好能复用删了就少了条排查路径。当然也不要指望 Misc 替代正式文档它的定位是补充工具不是权威依据。4.3 ThirdParty集成第三方 MCAL 的桥ThirdParty 存在的意义是帮助用户把第三方工具、软件、插件集成到 Vector 代码包中。最常见的用法是把第三方芯片厂商提供的 MCAL 代码包和配置工具集成进来之后就能在 DaVinci Configurator 里对 MCAL 模块进行配置、关联模块并生成代码。集成步骤通常是先确认第三方 MCAL 包内的配置描述文件是否齐全再把内容放到 ThirdParty 对应位置最后在工具里刷新配置模型。这个过程最容易出错的是配置文件缺失或版本不匹配所以我一般先用命令把 ThirdParty 下的描述文件都列出来核一遍# 检查 ThirdParty 目录下所有 XML 描述文件确认 MCAL 集成文件完整 Get-ChildItem -Path C:\Vector\CBD2200001_D00\ThirdParty -Recurse -Filter *.xdm | Select-Object FullName命令里的 -Filter *.xdm 只匹配 XML 描述文件-Recurse 遍历所有子目录FullName 显示完整路径。如果在这个列表里找不到与 MCAL 配置工具对应的文件基本可以判断集成不完整继续往下配迟早报错。另外第三方 MCAL 与 Vector 模块之间的接口依赖关系在 Doc 对应模块的手册里通常会有说明别只盯着 ThirdParty 文件夹本身。5. 避坑与排查SIP 包使用中的常见翻车现场5.1 下载链接过期现象邮件里的下载链接打不开或打开后提示连接失效。原因Vector 释放 SIP 包的邮件会把下载链接和解压密码分成两封发送链接有效期通常在 60 天左右。收到邮件后没有第一时间下载等要用时再点链接已经过期。解决收到第一封链接邮件后当天就下载宁可先下下来再核对完整性。如果确实过期了持有 CBD 号联系支持团队补发。从那以后我都是把两封邮件归档在同一个文件夹避免链接和密码分散到两个邮箱或两个文件夹里。5.2 原始安装包被改动想恢复原状却发现没备份现象配置工程被改坏或者生成器输出异常想对比原始文件发现解压目录已经是改过的状态。原因直接在默认路径 C:\Vector\CBD220xxxx_D00 下开发没有留存原始包。解决解压后第一时间整包备份。习惯的写法是# 解压后立刻备份整个代码包备份路径与实际交付号对应 Copy-Item -Path C:\Vector\CBD2200001_D00 -Destination D:\SIP_Backup\CBD2200001_D00 -RecurseCopy-Item 是 PowerShell 的复制命令-Path 指定源目录-Destination 指定备份目录-Recurse 表示递归复制所有子目录和文件。核心细节是备份目录名直接沿用 CBD 号这样以后要找某个版本不需要翻邮件回忆。备份一次基本不耗时但能在很多次翻车里给你提供后悔药。5.3 Snapshot 包被当成正式包全速开发现象团队拿着 D00.0 snapshot 包配置了大量功能正式包 D00 到了之后发现模块版本或接口不匹配大规模返工。原因没有提前意识到 snapshot 包没有参考 Demo 工程部分模块处于 beta 状态且没有经过集成测试。解决拿到包先看 Applications 目录是否为空或缺失。如果为空确认是不是 snapshot 包是的话尽量用其中的组件做并行验证而不要把完整的配置工程建立在它上头。配置工作最好等到正式 D00 包到位后再做这看起来是等版本实际是省时间。5.4 参考工程编译时找不到编译器现象首次编译参考工程make 直接报错提示找不到编译器命令或工具链路径。原因代码包不会自动配置编译器路径环境变量 PATH 或工具链选项没设置好。解决先看 Doc 里的发布说明确认要求的编译器版本再看 Applications 里的 MakeFile 引用了哪个编译器名最后把编译器安装目录加到 PATH 里。注意不要因为参考工程用的是某个编译器版本就把自己后来要用的版本也顺手改了两套环境要分开验证。5.5 被 Doc 文档数量吓到选择不读现象Doc 文件夹里文档很多干脆只看示例代码遇到参数报错就猜着改配置。原因文档索引没建立起来不知道哪份文档回答哪个问题。解决先读 DocumentationGuide_MICROSAR.pdf再按模块目录建立自己的文档收藏夹。每次用一个新模块前花十分钟找到该模块的用户手册和发布说明把两个文件的路径贴到工作笔记里以后每次排查都省力不少。6. 快速上手技巧一天内把 SIP 包用起来6.1 用 DocumentationGuide 建立阅读地图第一次面对新交付包我的顺序是固定的先读 DocumentationGuide_MICROSAR.pdf它相当于整个 Doc 文件夹的导航。之后按照文档索引把产品发布说明、技术参考手册、用户手册三类文件分别归位后续查东西时直接进对应分类不再整个文件夹翻找。6.2 新包验证的三个检查点收到新包后我会按下面三个检查点走一遍全部通过再开始业务开发检查点操作通过标准CBD 与目录邮件里的 CBD 号与解压目录名一致完全一致参考工程编译Applications 下工程 make 通过无错误退出配置工具可用DaVinci Configurator 正常打开工程无模型错误这三个检查点分别对应包拿对、编译环境通、配置工具通。任一步失败都不要急着写业务代码。我在一次新项目中跳过了参考工程编译理由是“这次模块改动不大应该没问题”结果等到配置生成时就碰上模型版本不一致的报错前后浪费两天排查。从那以后凡新到一个代码包我都强制走一遍上面三个检查点并把 DocumentationGuide 的开头几页翻完才开工。希望这套顺序对你也有用。本文还有配套的精品资源点击获取