您的位置 首页 电子技术

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

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

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

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

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064945-622af10914437.jpg

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

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

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064946-622af10a42567.png

调试Classic AUTOSAR SWCs中的C代码

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

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064948-622af10c2d05b.jpg

图2 | vVIRTUALtarget支持Classic AUTOSAR的BSW Emulation

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

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064949-622af10d3c330.jpg

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

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

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064950-622af10e72667.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++代码

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064951-622af10f7d7de.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能对于预先定义的接口进行观测及激励等调试行为。

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064952-622af110a8c63.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窗口中。

http://news.vvfanli.com/wp-content/uploads/2022/03/20220311064953-622af111ce23a.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章节。

<!–

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: admin

为您推荐

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦-夜间的路灯不仅照亮了黑暗的街道,而且照亮了回家的道路。从街上望去,闪烁的路灯发出暖光,指引着我们家的方向。城市里的路灯就像“守护者”,给长途旅行回来的游客带来了极大的安全感。 当今,路灯智能控制时代的到来,极大地促进了传统路灯的人工机械化运行。虽然对此感到兴奋,但我们不禁要问:随着路灯智能控制的早期到来,除了改善路灯的运行模式,还能带来什么? 为城市交通提供安全保障 城市公共照明系统中的智能路灯在每个路

晶振在五种不同行业中的应用说明

晶振在五种不同行业中的应用说明-晶振在五种不同行业的应用-由TST嘉硕代理KOYU光与电子

几种不同的物联网控制APP模式

本文就简单介绍当前几种物联网控制APP模式,让大家了解几种不同的技术路线。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果公司占据2021年日本第四季度可穿戴设备71.5%份额,占据全球可穿戴设备市场34.9%份额。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

如何用GPUDirect存储器如何缓解CPU I / O瓶颈

除了使用 GPUs 而不是 CPU 加快计算的好处外,一旦整个数据处理管道转移到 GPU 执行,直接存储就起到了一个力倍增器的作用。这一点变得尤为重要,因为数据集大小不再适合系统内存,而且 GPUs 的数据 I / O 增长成为处理时间的瓶颈。当人工智能和数据科学继续重新定义可能的艺术时,启用直接路径可以减少甚至完全缓解这个瓶颈。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部