虚拟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

相关文章

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建