0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CANoe和Visual Studio实现Classic和Adaptive AUTOSAR应用层调试

Vector维克多 来源:Vector维克多 作者:Vector维克多 2022-03-10 15:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

伴随“软件化”和“敏捷化”的推进,从基于域(Domain)架构到基于区域(Zonal)架构的发展,亦或OEM成立软件中心参与软件开发与集成,均面临复杂控制器软件的整合。传统开发大多采用Lauterbach或iSYSTEM等与CANoe结合实现在真实控制器上的调试工作;如今域控器、区域控制器和车载“电脑”中软件将由多方独立并行开发集成,故在开发阶段大部分时间内将面临:无硬件或因耦合软件由第三方开发而无法实现传统调试或测试工作。在面对复杂控制器软件系统时,CANoe可在虚拟环境实现软件系统的调试和测试工作,Visual Studio(简称VS)或许是虚拟环境下进行Classic AUTOSAR和Adaptive AUTOSAR中C/C++软件系统调试与编译的“利器”。

835b2a18-8fbb-11ec-952b-dac502259ad0.jpg

图1:分布式软件调试与测试工具链

在软件系统开发过程中,因软件系统虚拟运行环境部署困难,内部变量调试成了测试、修正语法错误和逻辑错误阻碍了开发测试效率。过往大多汽车工程师将CANoe仅当做总线工具或HiL平台,随着Vector的CANoe4SW被整合进CANoe后,CANoe/CANoe4SW可实现C、C++和Python软件系统的测试,同时结合针对AUTOSAR软件虚拟化工具vVIRTUALtarget配合Visual Studio,从开发早期可介入车载软件系统运行的调试,并使得后期持续有质量的“虚拟”黑盒交样成为了可能。本文就CANoe耦合VS在单机环境下实现AUTOSAR应用层调试做简要说明,相关工具见下表1。

8370030c-8fbb-11ec-952b-dac502259ad0.png

调试Classic AUTOSAR SWCs中的C代码

得益于vVIRTUALtarget对于Classic AUTOSAR的BSW Emulation功能,开发人员可在单个SWC开发完成之后对其进行调试,随着开发的进度进行,更多的SWCs可以被整合虚拟化并统一验证。在创建Classic SWCs虚拟化软件系统的过程中,与之相匹配的Visual Studio工程也会被同步生成,用作在CANoe中调试软件系统的工程项目。

8386e46e-8fbb-11ec-952b-dac502259ad0.jpg

图2 | vVIRTUALtarget支持Classic AUTOSAR的BSW Emulation

在调试之前只需要在CANoe中加载Classic SWCs虚拟软件系统并在Visual Studio中把调试器加载到特定的进程,在CANoe中启动measurement即可开始调试软件系统。

8398302a-8fbb-11ec-952b-dac502259ad0.jpg

图3 | 在Visual Studio中把调试器加载到被测系统进程中

CANoe与Visual Studio配合调试可以快速访问ECU中的内部参数,利用Visual Studio丰富的调试功能大大缩短了调试时间。特别是对于复杂的 ECU 或分布式功能,通过调试功能访问 ECU 中的内部信息为软件系统或 ECU 堆栈开辟了新的、全面的开发及测试选项。特别是 AUTOSAR ECU,由于其结构化布局由基本软件 (BSW)、运行时环境 (RTE) 和软件组件 (SWC) 组成,不需要通过接口,直接可以访问用于测量和模拟测试的参数变量。

83ac0ca8-8fbb-11ec-952b-dac502259ad0.jpg

图4| 使用Visual Studio调试Classic AUTOSAR SWCs

在CANoe中工程师除了可以对SWC的接口进行激励和监控,也可以通过在Classic SWCs虚拟软件系统中添加自定义变量,更灵活地虚拟软件中添加变量用来控制一些本来不具有交互能力的临时变量以及函数。自定义变量只需要以固定格式“VARIABLE_UINT32("CustomNamespace", MyVariable, 0)”描述在头文件“Vtt_CustomVars_Cfg.h”中,vVIRTUALtarget即可自动识别并把相应的系统变量创建在接口描述文件中,从而实现在CANoe中对中间变量的持续观测。

调试Adaptive AUTOSAR APPs中的C++代码

83c39b98-8fbb-11ec-952b-dac502259ad0.jpg

图5 | 利用Visual Studio配合CANoe/CANoe4SW对软件系统进行调试

伴随Vector发布的CANoe4SW和CANoe的整合,开发人员可以根据C、C++和Python工程的环境配置编译运行在不同的系统平台和硬件环境,无论将Adaptive AUTOSAR APPs部署在Windows或Linux 虚拟环境中,CANoe/CANoe4SW都可以根据预先定义好的接口结构以及类型自动生成与之相匹配的SiL Adapter作为Adaptive APPs的一部分进行编译,编译后的可执行程序即使运行在远程的PC主机上,只要一根网线即可与CANoe/CANoe4SW互通,使CANoe/CANoe4SW能对于预先定义的接口进行观测及激励等调试行为。

83d8674e-8fbb-11ec-952b-dac502259ad0.jpg

图6 | 在Adaptive AUTOSAR APPs中添加断点并设置为自动继续模式

在调试Adaptive AUTOSAR APPs的过程中,开发人员更多会关注于某些内部变量和临时变量的实时变化的调试和分析,从CANoe/CANoe4SW 15 SP3提供了免费的支持Visual Studio Code和Visual Studio的插件:Distributed Software Debugging Plug-Ins,通过该插件,开发人员可以在Visual Studio工程中的Adaptive AUTOSAR APPs中C++源代码的任意函数中加入断点,而这个断点中所有的变量就可以同步被显示在CANoe/CANoe4SW的Trace窗口中。

83f1547a-8fbb-11ec-952b-dac502259ad0.jpg

图7 | CANoe中同步显示C++源代码断点函数中的变量

Distributed Software Debugging Plug-ins在Visual Studio中提供了丰富的配置项以更好地配合CANoe/CANoe4SW联调使用。通过配置,在不操作CANoe/CANoe4SW的情况下,一旦在Visual Studio中开启了调试,CANoe/CANoe4SW中的measurement会自动开启,立即进行数据收发及监控,即使是初始化值也不会错漏。除此之外,Visual Studio中源代码的局部变量的类型也可以在CANoe/CANoe4SW中设置成各种类型的显示方式,以便在监控变量的时候更加直观便捷。插件位于CANoe/CANoe4SW安装路径下的Installer Additional ComponentsDistributedDebugging文件夹中,双击插件即可自动安装,更多细节说明和配置详见CANoe/CANoe4SW的Help手册中Distributed Software Debugging章节。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17646

    浏览量

    190268
  • 编译
    +关注

    关注

    0

    文章

    688

    浏览量

    34950
  • CANoe
    +关注

    关注

    4

    文章

    82

    浏览量

    9536

原文标题:基于CANoe和Visual Studio实现Classic 和Adaptive AUTOSAR应用层调试

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CANoe.Diva典型使用问题五则

    一、Diva工程导入CANoe报错问题现象:解决方案:请使用管理员权限运行一下CANoe安装包之下的图中*.exe文件:(可能在Exec32中)(运行时CANoe关闭):二、CANoe
    的头像 发表于 11-27 09:51 1662次阅读
    <b class='flag-5'>CANoe</b>.Diva典型使用问题五则

    微软Visual Studio 2026 发布!AI 深度融合、性能提升

    “  微软发布 Visual Studio 2026 预览版,新版本以深度融合的 AI Copilot 为核心,结合全新的 Fluent Design 界面与显著的性能提升,旨在打造前所未有的智能
    的头像 发表于 09-16 11:17 1297次阅读
    微软<b class='flag-5'>Visual</b> <b class='flag-5'>Studio</b> 2026 发布!AI 深度融合、性能提升

    爆肝整理!CANoe选型不再纠结,3分钟快速上手!#CANoe

    CANoe
    北汇信息POLELINK
    发布于 :2025年07月30日 16:36:44

    CANoe中ADAS功能集介绍

    )。AFS作为CANoe基础功能的一部分,不需要购买额外的Option即可使用。同时,CANoe本身的强大功能和开放接口使得结合总线通信,集成第三方工具,实现SI
    的头像 发表于 07-10 14:55 1055次阅读
    <b class='flag-5'>CANoe</b>中ADAS功能集介绍

    基于Classic AUTOSAR的ECU平台虚拟化技术分析

    Classic AUTOSAR是经过验证并在全球广泛应用的行业标准,过去二十年来一直是车载软件开发的重要基础。该标准从针对特定微控制器的标准化嵌入式软件组件的理念发展而来,目前几乎100%的车辆都
    的头像 发表于 06-19 14:11 664次阅读
    基于<b class='flag-5'>Classic</b> <b class='flag-5'>AUTOSAR</b>的ECU平台虚拟化技术分析

    CANoe产品体系19版本新功能(下)

    NET 8.0现已支持测试脚本、应用模型和仿真节点的开发,支持C# 12,可使用async/await进行等待,本机编译实现快速加载,改进应用层对象的API实现处理复杂数据类型,并支持运行在Linux版本
    的头像 发表于 05-29 14:05 2032次阅读
    <b class='flag-5'>CANoe</b>产品体系19版本新功能(下)

    如何在Visual Studio 2022中运行FX3吞吐量基准测试工具?

    Visual Studio 2022 中运行此工具的步骤吗? 此外,是否有我可能错过的可执行文件(例如在 GitHub 上)? 预先感谢您的帮助!
    发表于 05-13 08:05

    Visual Studio中运行Hello分类样本 ,仅在Visual Studio输出中收到错误消息,怎么解决?

    Visual Studio* 中运行 Hello 分类样本 ,仅在 Visual Studio* 输出中收到错误消息: Exception thrown
    发表于 03-05 08:16

    黑芝麻智能与Elektrobit推出Classic AUTOSAR解决方案

    黑芝麻智能与Elektrobit联合发布了基于武当系列C1296芯片的完整的Classic AUTOSAR解决方案。
    的头像 发表于 01-09 09:53 1266次阅读

    AUTOSAR通信与网络安全 AUTOSAR通信在车辆中的应用

    架构合作伙伴计划,旨在创建并建立一个开放的标准化软件架构,以简化汽车电子控制单元(ECU)的开发和生产。 1. AUTOSAR通信概述 AUTOSAR定义了一个分层的软件架构,其中包括了通信
    的头像 发表于 12-17 15:06 1445次阅读

    AUTOSAR通信实现中的常见问题

    AUTOSAR(Automotive Open System Architecture)汽车开放系统架构旨在实现汽车电子的软硬件分离,降低ECU软件开发的复杂度,提高软件可重用性。 一、通信协议栈
    的头像 发表于 12-17 15:03 1762次阅读

    AUTOSAR中通信堆栈的配置 AUTOSAR通信模块测试方法

    )的开发和生产。通信堆栈是AUTOSAR架构中的关键组成部分,负责处理ECU之间的通信。 AUTOSAR中通信堆栈的配置 通信模型 : AUTOSAR定义了一种分层的通信模型,包括应用层
    的头像 发表于 12-17 15:01 1515次阅读

    AUTOSAR通信与CAN协议的关系

    AUTOSAR通信模型: AUTOSAR定义了一个分层的软件架构,其中包括应用层、基础软件和微控制器抽象。在这些
    的头像 发表于 12-17 14:57 1458次阅读

    AUTOSAR通信组件介绍 AUTOSAR通信功能分析

    实现汽车电子控制单元(ECU)的软件设计和开发。这个架构包括多个,其中通信AUTOSAR架构中的关键组成部分之一。 1. 通信组件概述 AUT
    的头像 发表于 12-17 14:55 2149次阅读

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽车开放系统架构,该架构支持汽车电子控制单元(ECU)之间的通信,实现了高度模块化和可重用性。AUTOSAR
    的头像 发表于 12-17 14:54 3956次阅读