首页 > 其他分享 >基于CANoe和Visual Studio实现Classic 和Adaptive AUTOSAR应用层调试

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

时间:2023-02-21 13:33:35浏览次数:59  
标签:AUTOSAR CANoe Classic CANoe4SW Visual Studio 调试

“转载自维克多汽车技术(上海)有限公司,作者Vector China”

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

 

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

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

调试Classic AUTOSAR SWCs中的C代码

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

图2 | vVIRTUALtarget支持Classic AUTOSAR的BSW Emulation

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

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

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

图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++代码

图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能对于预先定义的接口进行观测及激励等调试行为。

图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窗口中。

图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 Components\DistributedDebugging文件夹中,双击插件即可自动安装,更多细节说明和配置详见CANoe/CANoe4SW的Help手册中Distributed Software Debugging章节。

标签:AUTOSAR,CANoe,Classic,CANoe4SW,Visual,Studio,调试
From: https://www.cnblogs.com/trinitytec/p/17140623.html

相关文章

  • Dockerize ASP Classic on IIS
    DockerizeASPClassiconIISAskQuestionAsked 4years,1monthagoActive 9monthsagoViewed 9ktimes 2216Microsofthasbeeninvesti......
  • logback-classic
    Logback是一个Java应用程序的日志记录框架。Logback存在远程代码执行漏洞,有编辑配置文件所需权限的攻击者可以制作恶意配置,允许执行从LDAP服务器加载的任意代码。......
  • project car system / autosar / AUTomotive Open System Architecture
    s https://zhuanlan.zhihu.com/p/118849539汽车开放系统架构(AUTOSAR)是什么大长 汽车电子电气系统架构师/留德华 1.概念AUTOSAR,全称为Autom......
  • Standard ABAP Debugger 和 Classic ABAP Debugger 的实现差异
    这两种ABAP调试器,可以在SAPGUI里这个菜单的位置进行切换:StandardABAP调试器有时候又称为新调试器。新的ABAP调试器在一个同被调试的ABAP程序完全不同的Exter......
  • python脚本调用CANoe COM Server接口
    《CANoe开发入门到精通》源码:#-----------------------------------------------------------------------------#Example:TestFeatureSetviaPython##This......
  • autosar分层架构
    AUTOSAR分层一、应用层:通过端口(PORT)交互,每个SWC可以包含一个或者多个实体(RunnableEntity),可由RTE事件触发。原子SWC包括应用软件SWC,传感器SWC,ECU抽象软件SWC等......
  • Adobe Lightroom Classic 2023(LrC2023)v12.0.1.1 (x64) 直装版
    AdobeLightroomClassic2023是一款以后期制作为重点的图形工具软件,为您提供了实现优秀摄影效果所需的所有桌面编辑工具。提亮颜色、使灰暗的摄影更加生动、删除瑕疵、将......
  • 新功能发布 | TSMaster新增CANoe自动化控制模块,欢迎下载体验!
    前言今天介绍TSMaster的新功能—CANoe自动化模块。该模块的功能是通过激励CANoe内部的系统变量,配合运行在CANoe中的CAPL脚本来响应变量变化事件,从而实现对CANoe的自动控制。......
  • 车载测试系列:基于AP AutoSAR的SOA实现
    Android的SOTA技术 针对Android平台的APP应用、主题、皮肤,实现路径类似于手机的应用商城,云端建立版本仓库,用户在车机软件商店点击安装后,车端从TSP下载安装包(apk),由车机或......
  • [ACTF新生赛2020]crypto-classic0
    打开压缩包里面有三种文件: hint文件内容:哼,压缩包的密码?这是小Z童鞋的生日吧== cipher文件内容:Ygvdmq[lYate[elghqvakl} howtoencrypt是一个加密的压缩......