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章节。

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

    关注

    112

    文章

    16361

    浏览量

    178030
  • 编译
    +关注

    关注

    0

    文章

    657

    浏览量

    32870
  • CANoe
    +关注

    关注

    4

    文章

    66

    浏览量

    8646

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    AUTOSAR通信与CAN协议的关系

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

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

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

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

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

    Vector推出一套基于Visual Studio Code的免费插件

    在汽车软件开发过程中,除使用MATLAB开发算法外,专业开发者也偏向使用Visual Studio Code来开发代码,其中软件测试用例的编写是确保系统稳定性和可靠性的重要环节。传统的CAPL脚本
    的头像 发表于 11-24 14:15 388次阅读
    Vector推出一套基于<b class='flag-5'>Visual</b> <b class='flag-5'>Studio</b> Code的免费插件

    AUTOSAR解决方案 — INTEWORK-EAS-AP

    经纬恒润自主研发的Adaptive AUTOSAR平台产品, 遵循AUTOSAR Adaptive R19-11和R22-11规范, 使用C++11、C++17语言开发。可通过极易上手
    的头像 发表于 11-06 16:11 655次阅读
    <b class='flag-5'>AUTOSAR</b>解决方案 — INTEWORK-EAS-AP

    Linux应用层控制外设的两种不同的方式

    众所周知,linux下一切皆文件,那么应用层如何控制硬件,同样是通过 文件I/O的方式来实现的,那么应用层控制硬件通常有两种方式。
    的头像 发表于 10-05 19:03 510次阅读
    Linux<b class='flag-5'>应用层</b>控制外设的两种不同的方式

    Vector和HighTec推出基于Rust和AUTOSAR Classic实现安全应用的解决方案

    Vector和HighTec两家公司成功展示了Rust应用程序与基于C语言的AUTOSAR Classic基础软件的集成,这在行业内还属首次。这样一来,Rust及其优势可以被应用在有最高功能安全要求的汽车ECU中。
    的头像 发表于 07-17 14:42 750次阅读
    Vector和HighTec推出基于Rust和<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>Classic</b><b class='flag-5'>实现</b>安全应用的解决方案

    求助,用visual studio 2017开发esp32的问题求解

    各位好,esp32开发我这边用的是visual studio 2017+visual的形式,我在打开工程样例文件后,编译通过并成功烧录,但是右击“source Files”文件夹想添加一个C文件
    发表于 06-25 07:07

    STM32F407VE使用Visual studio 2017 + VisualGDB 5.4版调试程序,运行时报错的原因?

    STM32F407VE板子使用Visual studio 2017 + VisualGDB 5.4版调试程序 运行到 void *p; sscanf(name, \":%p\"
    发表于 04-24 07:58

    Elektrobit已正式推出现成的Classic AUTOSAR和OSEK软件和服务

    Elektrobit现已正式推出现成的Classic AUTOSAR和OSEK软件和服务。无论您的项目大小,我们都能根据您的需求提供可靠且互通的解决方案,同时支持多个汽车制造商规范,并有助于降低软件开发成本。
    的头像 发表于 03-26 10:03 434次阅读

    CANoe软件的使用操作说明

    本文档是CANoe软件的使用操作说明,方便刚接触CANoe的伙伴们快速上手使用这个软件。
    的头像 发表于 02-25 14:30 1.2w次阅读
    <b class='flag-5'>CANoe</b>软件的使用操作说明

    DevEco Studio 4.1带来多种调试能力,助力鸿蒙原生应用开发高效调试

    ,HUAWEI DevEco Studio不断挖掘、汲取开发者的需求和建议,经过持续打磨和系列升级实现新突破,将全力支持鸿蒙原生应用开发。 为助力高效开发,快速定位问题,DevEco Studio 4.1带来多种
    的头像 发表于 02-04 15:35 743次阅读

    CanoE和TC3x7应用套件之间建立通信,如何实现通过串行通信从CanoE收到的数据帧?

    我想在 CanoE 和 TC3x7 应用套件之间建立通信。 我希望开发板打印它通过串行通信从 CanoE 收到的数据帧。 我该怎么做? 我是初学者,请帮忙。
    发表于 01-31 06:36