当前位置: 首页 > news >正文

BSW:辅助模块、校验与代码生成笔记

一、辅助模块与BSW的校验和代码生成

1. AUTOSAR BSW的工作配置成果

在这里插入图片描述

已完成配置的BSW模块覆盖通信、管理、协议栈三大核心领域,具体如下:

  • 通信模块
    • CAN通信:配置CAN、CANIF(CAN接口)、PDUR(Pdu路由器)、COM(通信管理)模块
    • LIN通信:配置LIN、LINIF(LIN接口)模块
    • ETH(以太网)通信:配置ETH、ETHIF(以太网接口)、TCPIP(TCP/IP协议栈)、SOAD(Socket Adaptor)等模块
  • 管理模块
    • 网络管理:配置NM(网络管理)、CANNM(CAN网络管理)、LINNM(LIN网络管理)、COMM(通信管理)模块
    • ECU管理:配置ECUM(ECU管理)模块
    • 存储管理:配置NVM(非易失性存储)、MEMIF(存储接口)、FEE(闪存仿真EEPROM)模块
  • 协议栈
    • 诊断协议:配置DCM(诊断通信管理)、DEM(诊断事件管理)、CANTP(CAN传输协议)、DOIP(诊断通信-over-IP)模块
    • 标定协议:配置XCP(通用标定协议)模块

2. 其他辅助模块

辅助模块是BSW层校验与功能正常运行的基础,需按需添加,具体分类及作用如下:

  • 运算库:提供核心计算与校验能力
    • CRC校验库:用于数据完整性校验(如ECU间通信数据、存储数据的校验)
    • BFX库:位处理与定点计算函数库(如位操作、定点数运算)
    • MFL库:浮点值数学函数库(如浮点加减乘除、三角函数)
    • MFX库:定点值数学函数库(如定点数精度转换、算术运算)
  • 标准库:定义工程基础环境与数据类型
    • Platform:定义MCU平台类型、数据长度(如32位/64位)、编译器类型等工程基础参数
    • Standard:定义标准数据类型(如TRUE/FALSE、uint8/uint16)、宏定义等
  • 功能库:提供专项功能支持
    • STBM(StbM,时间同步管理):实现ECU间或模块间的时间同步
    • DET(开发错误追踪):追踪并记录BSW层开发阶段的错误(如模块调用异常、参数错误)
注意事项
  • 必须添加所有依赖的辅助模块,否则BSW层校验无法通过(如使用CAN通信需确保CRC库已添加);
  • 若启用特殊功能(如E2E数据保护、Watchdog看门狗),需额外引入对应的辅助模块(如E2E模块、Wdg模块)。

3. BSW代码生成与校验

使用RTA工具(RTA Code Generator)完成BSW代码生成,核心流程分为5步:

1)打开RTA Code Generator对话框
  • 操作步骤:
    1. 通过ECU Navigator选中目标工程;
    2. 点击右侧下拉三角,选择“Open RTA Code Generator Dialog”;
    3. 对话框左侧包含3个核心配置选项(用于后续参数设置)。
2)配置BSW代码生成模块
  • 关键配置项
    • 定义BSW代码输出路径(需与工程目录结构匹配,避免路径错误导致生成失败);
    • 勾选需要生成的代码模块(必须包含功能所用模块及所有依赖模块,缺一不可)。
  • 模块选择原则(按功能分类勾选):
    • 通信功能:勾选COM、CAN、LIN、ETH等;
    • 诊断功能:勾选DCM、DEM、CANTP等;
    • 以太网功能:勾选ETH、TCPIP、SOAD等;
    • 存储功能:勾选NVM、MEMIF、FEE等;
    • 标定功能:勾选XCP等。
3)目标生成物配置项

“生成物”指代码生成的输出文件类型,需根据需求勾选,具体说明如下:

生成选项内容说明适用场景
Dynamic BSW Code配置代码+define代码(含头文件、参数C文件)所有代码生成场景(必选)
BSW模块ARXML描述文件生成BSW模块的ARXML配置文件首次生成/配置修改后(必选)
Static BSW CodeBSW层静态代码(固定逻辑,不随配置变更)首次生成/静态逻辑更新
Integration Code模块集成代码(用于模块间接口关联)多模块协同场景(必选)
Validation Only仅校验配置,不生成代码配置初步检查(可选)
  • 首次生成建议:勾选“Dynamic BSW Code、BSW模块ARXML描述文件、Static BSW Code、Integration Code”前四项,确保完整生成代码与配置文件。
4)配置项校验

生成代码前需通过工具校验配置合法性,核心步骤与错误处理如下:

  • 错误检查方法
    1. 查看Console输出栏(实时显示校验日志,快速定位明显错误);
    2. 检查Problems选项卡(列出所有校验错误/警告,含错误位置与原因);
    3. 若未显示Problems选项卡,通过“Window→Show View→Others”搜索打开。
  • 常见错误类型
    • 未声明错误:缺少必要配置项声明(如未定义MCU平台类型);
    • 引用错误:模块间引用冲突(如A模块引用的B模块未配置)或引用源消失(如删除了已被引用的ARXML文件);
    • 值声明错误:不同模块的配置项数值冲突(如两个模块对同一参数的取值不一致)。
  • 修改原则
    1. 优先按照工具提示的错误信息逐步修改;
    2. 若不确定配置,可对比成熟样例工程,暂用默认值;
    3. 使用大屏幕显示,避免因界面遮挡导致信息遗漏。
5)工作成果详解

代码生成后,工程目录会新增以下核心内容:

  • 生成内容位置
    • Software文件夹:生成BSW模块的应用层模块(如BSWM、DCM的应用逻辑代码);
    • Data Types文件夹:生成各模块依赖的数据类型定义(如自定义枚举、结构体);
    • Infrastructure文件夹:新增BSW层基础架构相关文件(如模块接口声明)。
  • 代码结构
    • 每个模块目录包含“API文件夹”(接口函数声明)和“Static Code”(静态逻辑代码);
    • Dynamic Code目录:包含配置代码(如参数初始化)和define代码(宏定义)。

4. 内容总结

本章重点
  1. 回顾BSW层已配置的核心模块(通信、管理、协议栈);
  2. 明确辅助模块的分类、作用及“必加依赖”原则;
  3. 完整演示RTA BSW Generator的配置流程(从打开对话框到成果查看)。
实践建议
  1. 首次BSW代码生成耗时较长(可能数小时至数十小时),需预留足够时间;
  2. 配置错误是正常过程,应将错误排查视为熟悉模块依赖的学习机会;
  3. 建议多动手操作,大胆尝试不同配置(可基于样例工程修改,降低风险)。
错误处理流程
  1. 先查看Console输出,定位实时错误;
  2. 再检查Problems选项卡,获取完整错误列表;
  3. 根据错误信息找到对应的模块ARXML文件,定位出错位置并修改。

二、知识小结

知识点核心内容考试重点/易混淆点难度系数
AUTOSAR BSW层配置介绍已配置模块:通信(CAN/LIN/以太网)、管理(网络/ECU/存储)、协议栈(诊断/标定)模块间的依赖关系(如CAN通信需依赖CRC库)、配置冲突处理⭐⭐⭐⭐
辅助模块的作用运算库(CRC/BFX/MFL/MFX)、标准库(Platform/Standard)、功能库(StbM/DET)依赖模块漏选导致校验失败、特殊功能需额外加模块(如E2E)⭐⭐⭐
代码生成流程使用RTA工具生成动态代码、静态代码、ARXML文件、集成代码模块勾选不全(漏依赖)、输出路径配置错误⭐⭐⭐⭐
错误排查方法1. 查看Console输出
2. 检查Problems选项卡
3. 对比ARXML与样例工程
引用失效(Invalid引用)、值声明冲突⭐⭐⭐⭐⭐
生成成果BSW静态/动态代码、ARXML描述文件、应用层组件(BSWM/DCM等)输出路径与工程结构不匹配、生成文件缺失⭐⭐
心态与建议错误为正常过程,需耐心对比样例调试;首次配置可能耗时数天首次生成耗时较长导致的焦虑、不敢尝试修改配置⭐⭐
http://www.dtcms.com/a/474217.html

相关文章:

  • seo网站营销推广wordpress更新版本
  • 李宏毅机器学习笔记20
  • 无锡信息网站建设最近热点新闻素材
  • 开发中遇到的关于Spring事务[传播行为和隔离级别]的相关问题的记录
  • CVE-2019-2729反序列化(unserialize)漏洞学习与分析
  • 一流的句容网站建设自己做的网站找不到了
  • TDengine 数学函数 CEIL 用户手册
  • 石家庄好用的招聘网站做网站网站会被判多久
  • 北京平台网站建设代运营公司介绍
  • AI编程作品:Android 极简秒表应用
  • 网络五子棋对战游戏测试报告
  • html做网站的原则自建站排名
  • 互联网彩票网站开发珠海seo关键词排名
  • springboot095交通事故档案管理系统lgl(源码+部署说明+演示视频+源码介绍+lw)
  • 新郑郑州网站建设铭讯网站建设
  • 在next项目中使用iconfont图标方法
  • 重新定义AI编程协作:深入解析Claude Code多智能体系统架
  • 深入解析如何高效处理PDF?
  • uniapp运行微信小程序uni为什么是undefined
  • 2100AI智能生活(下)
  • 什么是后端开发-常见问题
  • 产品做优化好还是超级网站好WordPress来应力
  • wordpress 慢2017郴州网站seo优化
  • 05_零基础搭建AI智能体开发环境:全网开源资源完全指南
  • UDSONIP学习
  • 照片网站cmswordpress 做问卷
  • 除了crontab,如何实现自动化MySQL备份?
  • 积分器电路(波形转换电路)
  • 免费远程新标杆:UU远程对比ToDesk、向日葵,个人体验更优
  • 做视频网站的服务器深圳福田地址随便来一个