虚拟ECU:基于SkyEye的TRACE32嵌入式调试

2024-04-13 00:52

本文主要是介绍虚拟ECU:基于SkyEye的TRACE32嵌入式调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着通信技术、智能终端、云计算等基础支撑技术的发展,嵌入式软件功能的丰富程度日益上升,已不再局限于21世纪初的基础功能,在航空航天、工业控制、医疗设备、消费电子、汽车电子、信息家电、网络通信等领域得到大规模应用,为加快经济发展、提升生活便利水平、提高工作效率起到促进作用。​

与之相对应的挑战也接踵而至:伴随着功能的丰富与拓展,嵌入式软件规模逐渐扩大,但因其偏向私域、定制化的特点,导致嵌入式软件的开发缺乏统一规范,很大概率存在一定缺陷。一旦涉及航空航天、汽车等安全关键领域,这些可能存在的缺陷就会对人身、财产安全方面带来极大威胁。

为什么嵌入式软件相较普通应用软件更易存在缺陷?

最根本的原因是,嵌入式软件需要依赖真实硬件才能运行,那么在软件开发初期,硬件资源未生产调试完成之前,软件开发处于盲盒状态,极大地增加了软件开发的不确定性。可以说,在嵌入式软件开发的初期阶段,不具备调试的条件。

要解决这一问题并不难,时至今日,仿真已在众多领域得到了广泛应用,对嵌入式软件而言也是如此,甚至更为有利,因为实物调试对嵌入式软件而言的风险实在太高:

1. 烧录风险:在硬件资源比较充裕的情况下,嵌入式软件的功能开发与验证需要不断重复完成烧录调试,而烧录本身具有一定的风险性和不确定性。烧录失败可能导致集成在板卡上的存储设备失效。由于独立更换存储设备的成本较高,最终结果往往是板卡整体报废,甚至会导致设备的损坏,带来不必要的财产损失。

2. 环境风险:嵌入式软件的实物调试依赖硬件环境,因此外界环境的影响,如静电、水等不确定因素很可能会引起硬件损坏,导致调试工作无法顺利进行,进而影响工期与交付、上市时间。

3. 场景限制:嵌入式软件的调试存在特定场景无法验证的问题,如太空射线导致的设备失灵。根据国内外对航天故障的统计结果,40%左右的故障源自太空辐射:1993年8月21日,美国五颗卫星同时失效,原因是使用的同一批定时器芯片均因宇宙射线辐照而失效;1994年,我国发射的“风云二号”气象卫星的失控也是由于一块超大规模集成电路(Very Large Scale Integration, VLSI)芯片受到空间辐射影响而失效。

由此可见,对于嵌入式软件而言,仿真不光能够实现测试“左移”,还能有效规避上述风险,将问题扼杀在初期阶段,保证嵌入式软件不受场景限制地完成开发与调试。这种优势对于当前电动化、智能化、网联化的全球汽车发展方向而言无疑更为契合。

当前汽车行业对仿真的应用主要集中在对汽车ECU,也就是“行车大脑”的虚拟仿真。下文将介绍应用于汽车ECU的基于天目全数字实时仿真软件SkyEye的TRACE32调试,SkyEye负责提供汽车虚拟ECU的搭建平台,结合TRACE32即可实现嵌入式仿真调试。

*SkyEye:天目全数字实时仿真软件SkyEye是一款国内自主研发、自主可控的嵌入式仿真软件,支持多种处理器架构,如 ARM、DSP、PowerPC、SPARC、X86、MIPS、Tricore等。同时支持多种国产操作系统的调试运行,如天脉、锐华、翼辉、RT-Thread等,支持Linux系统、Android系统调试运行。

*TRACE32:嵌入式系统调试工具,主要用于对微处理器、微控制器和数字信号处理器(DSP)等嵌入式系统进行调试和分析,提供了代码调试、系统状态监控、性能分析、系统控制、多核调试等多种功能。

▲基于SkyEye的TRACE32调试架构图

功能:

SkyEye与TRACE32结合可实现多种高安全高可靠的嵌入式软件研发目的,通常包含以下几种:

  • 嵌入式软件开发:SkyEye用于仿真硬件,TRACE32用于代码调试和验证。通过单步执行、断点设置、变量监视等功能,开发人员可以快速定位代码中的问题,确保软件的正确性和稳定性。

  • 仿真硬件调试和验证:通过查看寄存器状态、观察信号波形等,开发人员可以分析硬件的工作状态和问题,并及时进行修复和优化。

  • 性能分析和优化:支持跟踪程序的执行路径、记录函数调用时间等,帮助开发人员分析程序的性能瓶颈并进行优化,提高系统的响应速度和效率。

  • 多核系统调试:SkyEye支持多核嵌入式系统,TRACE32调试器可以同时调试多个核心的代码和状态,帮助开发人员理解多核系统的协同工作和通信机制,确保系统的稳定性和可靠性。

  • 系统集成测试:帮助开发人员在集成测试阶段进行系统级调试和验证。通过模拟外部环境、仿真外部设备等功能,开发人员可以模拟各种场景下的系统行为,并验证系统的功能和性能。

优势:

SkyEye与TRACE32的结合具有下列优势:

  • 系统结构简单:TRACE32与SkyEye都是功能独立的软件,包含丰富的接口设计,通过简单的配置即可实现两款软件的协同工作,一个页面即可完成软件对接配置。

  • 功能易于操作:TRACE32作为上位机软件,SkyEye作为下位机仿真软件,通过配置连通后,在TRACE32中可对SkyEye仿真环境进行调试,调试过程可视化,操作简单。

  • 结果响应及时:SkyEye虚拟ECU可实现真实ECU的1:1仿真,通过TRACE32可快速查看结果,使仿真调试工作不会感知到虚拟设备的存在,达到与真实ECU一样的处理结果。

  • 集成测试便捷:SkyEye支持多种处理器仿真,可通过TRACE32同时调试不同的仿真设备,构建起集成测试环境,实现联合测试效果。

总结

SkyEye虚拟ECU与TRACE32的完美结合能够为汽车等安全关键领域的用户有效降低软件研发成本,并为增效、保质量保驾护航。可以大胆预测,该方案具备为用户至少节省35%调试时间、减少50%测试成本、缩短66%产品上市时间的能力。

这篇关于虚拟ECU:基于SkyEye的TRACE32嵌入式调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/898710

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、