DT10在某研究所一大型应用程序通信问题中的应用

RoboMaster DT7&DR16遥控器与C型开发板DBUS通信实战解析 本文详细解析RoboMaster DT7遥控器与DR16接收机通过DBUS协议与C型开发板的通信实战。从硬件连接到软件实现,涵盖配对步骤、协议解码、DMA配置及数据融合应用,为机器人开发者提供完整的通信解决方案和调试技巧。 阅读详情
创提信息科技的DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能。可以支持C/C++,C#以及Java语言开发的程序。
本文分享xx所应用DT10在帮助他们解决一大型应用程序中出现的通信数据丢失的问题。
 
背景描述:
XX所主要从事军用电子装备和信息系统的研制,拥有数千名科研人员。他们研发的项目既有嵌入式的实时系统,也有应用于PC机上的主机端应用程序。本次他们碰到的问题主要是桌面系统应用程序,主要使用C#语言开发,涉及多个PC机之间的数据通信和处理。
 
问题描述:
客户的应用程序涉及三个应用程序之间的通信和数据处理,为便于说明问题情况,我们将其定位:A系统,B系统,C系统,A系统将数据发给B系统,B系统接受A系统发来的数据后,通过链表的形式存储并迅速处理,然后将处理后的数据发给C系统。主要问题出现在B系统,表现形式是:B系统应用程序所占用内存持续增加,程序长时间运行后,比如运行5小时或者1天,甚至出现程序挂起不响应现象。另外,发现程序性能存在一些瓶颈,存在不能及时处理数据的情况。
 
使用DT10帮助用户分析和解决问题
经过与客户工程师和测试人员详细沟通后,我们知道客户主要需要解决两个问题:

      1. 程序内存持续增长,长时间运行后会存在程序挂起不响应情况;
      2. 程序存在性能瓶颈

上述两个问题:
对于问题1,由于客户使用的是C#语言开发,通常C#有自己的内存释放机制,按常理来说不应该存在内存持续增加的情况,在与开发团队沟通后,我们有了一些一致的观点,估计可能是程序中某个对象持续的建立,但没有来得及处理,然后导致内存占用持续增长,有了这样的分析后,结合DT10的变量监控(Variable Monitoring)对代码中的接收信号的数量,处理信号的数理以及发出信号的数量进行长时间监控,最终发现其原因是:A系统发过来的数据,存在一定的阻塞现象,也就是B系统处理不及,从而导致发过来的数据越积越多,长时间运行后,用于存储A系统发送数据的链表越来越大,从而导致内存使用越来越大;
对于问题2,性能的瓶颈,直接通过DT10的函数执行时间和函数周期时间报告,长时间执行后,可以看到整个系统运行后,哪些函数执行时间较长,哪些函数执行次数较多,重点分析那些执行次数较多,而执行时间相对较长的函数,重点优化这些函数的执行性能;
当然DT10还有其他很多功能,比如回溯调试,覆盖率分析,其中回溯调试在本次客户问题分析中也有较大帮助。
 
 
DT10介绍
DT10是一款自动化的软件测试及调试工具,无需依赖任何OS 和CPU,支持C/C++、Java、C#多种语言,用于动态测试和调试的工具,可对运行时目标程序进行长时间跟踪,适用于各个开发阶段。
 
DT10是动态测试工具中唯一能实现灰盒测试的工具。不只软件内部的测试,连同CPU周边的传感器 , 端口等硬件状态也都会和执行路径一起被验证,所以可以在同一个时间测试软件和硬件的整个运行过程。测试结果,会自动产生报告。开发者和QA的工作人员都能通过使用该工具提升产品质量,使得工作更为高效。
 
在DT10 软件的界面上,可以输入运行时间、周期时间、参数、变量的设计值。除了输入的设计值可以在同一个页面(一览表)做管理之外,还可以当作设计书被导出。这些设计值,将在测试过程中被使用,可以和目标板上实际测量值做对照,如出现与设计值有出入的状况,系统会有警告的讯息弹出,便可通过这样的警告掌握问题的状况。
 
非常适合对长时间运行的软件进行跟踪调试。因为可以取得并分析︰任务的变化、函数的周期时间、运行时间、覆盖率、变量值的变化,所以整个调试的效率会大幅提升。就连不容易重现的问题,只要能重现1次,也可以从跟踪数据里来分析原因。所以通过长时间运行测试及修正是非常高效的方式。
 
主要功能点:
1. 不依赖操作系统和目标板CPU,支持任何处理器和嵌入式操作系统;
2. 可支持C/C++, Java, C#语言的覆盖测试、性能测试、Bug定位调试;
3. 与目标设备连接灵活多样。可支持直接通过网口,串口,GPIO,异步总线,SD卡,CAN总线等连接方式,特别是可直接通过网卡和串口直接连接目标设备,不用接飞线,大大增强了DT10的易用性和可支持的硬件环境多样性;
4. 软硬件同步测试。DT10提供一个Analog Box的连接盒,可监控4路数字信号输出端口和2路模拟信号端口,可同步检测变量值,实时查看硬件信号输出端口和变量变化情况与软件执行情况,从而实施软硬件同步测试;
5. 可长时间跟踪目标设备执行情况,最长可记录32天跟踪数据
6. 回放调试功能,提供可视化的函数执行跟踪报告,便于进行Bug分析,尤其是难以重现的Bug或者是偶发性程序崩溃错误
7. 动态覆盖率测试,提供系统测试覆盖率分析,支持语句覆盖率,分支覆盖率
8. 性能测试,检测函数执行时间,周期时间,统计代码中任意两行语句间的执行时间,便于进行性能分析和评估
9. 变量跟踪,跟踪程序真实执行过程中,变量值实时变化情况,并提供可视化图形报告
10. 验证设计值,回归测试。DTPlaner可定义函数执行时间的设计值(期望值),变量的设计值(期望值),目标设备实时执行过程中,其执行时间或者变量值一旦超过设计值范围,将给出警告错误
11. CPU压力监测,多个任务的切换监控,各个任务所占用系统资源统计;

从DBUS协议到实战:DT7遥控器与C型开发板深度通信指南 本文详细解析了DBUS协议在DT7遥控器与C型开发板通信中的应用,包括硬件连接、开发环境配置、数据帧解析及性能优化技巧。通过实战案例,帮助开发者快速掌握RoboMaster设备的通信技术,提升机器人控制系统的稳定性和响应速度。 阅读详情

相关推荐

大疆开发板A型基于HAL库使用RoboMaster 遥控器(DT7&DR16)及Debug在线调试

开发板A型芯片资料,遥控器用户手册,DBUS接口说明,DBUS参数,配置STM32CubeMX,时钟树配置,USART通信接口,Asynchronous(异步通信),配置DMA(直接存储器访问),常规配置及生成代码,配置工程文件(keil5MDK),声明数据结构体和缓存数组,Debug在线调试,ST-Link引脚图,如果对你有帮助,谢谢你的点赞支持!

weixin_45502838的博客 6256

自动化的软件测试及调试工具 DT10

创提信息科技(Trinity Technologies) 专业软件测试服务商, 将新一代嵌入式软件动态测试及动态调试解决方案DT10软件测试系列产品引入国内,DT10专门针对系统级软件测试,既支持嵌入式系统,又支持桌面主机软件测试,支持C/C++,Java,C#,并支持众多开发环境。 尤其是针对嵌入式领域,目前嵌入式软件测试解决方案难以满足客户对于高安全性行业的测试要求。在主机平台上,我们常常听到诸如QTP, TestComplete等等自动化测试解决方案,但在嵌入式软件测试上,这些产品显然无能为力,而这恰

Trinity_Techologies的博客 3428

帝特USB-串口转换器驱动安装与应用详解:DT-5001至DT-5003

帝特DT-500系列USB-串口转换器提供了不同型号的产品,以满足不同用户群体的特定需求。为了理解各个型号的异同,让我们从以下方面进行深入分析:硬件规格- 不同型号可能具有不同的芯片和接口类型,这些差异影响了转换器的性能和适用场景。传输速率- 某些型号可能在数据传输速率上进行了优化,以适用于需要高速通信的应用。电源要求- 不同型号的转换器可能在电源管理上有所差异,这影响到它们能否在特定的环境中稳定运行。外形尺寸和连接性。

weixin_35756892的博客 795

通过DT10获取程序执行过程中的实时覆盖率

DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能。 系统测试覆盖率,通常是用于判断软件测试充分性的指标之一,一般提供系统测试覆盖率的工具,均是在目标系统测试完成,需要程序停止后,对测试日志数据,进行分析进而得到覆盖率测试结果。 DT10除了上述这种方式获取覆盖率外,还可以获取实时覆盖率,尤其对于交互性的嵌入式设备非常有帮助,当你针对嵌入式设备给予某个输入激励,比如按某个按钮,通过DT..

Trinity_Techologies的博客 496

CASIO DT900/DT930/DT940驱动与配套软件完整指南

CASIO DT系列数据采集器(如DT900、DT930、DT940)是专为高效数据采集与管理设计的工业级移动终端。它们广泛应用于仓储管理、物流配送、零售盘点等领域,具备条码扫描、RFID读取、键盘输入等核心功能模块。该系列设备通过集成高性能处理器、耐用性外壳与便携式设计,满足复杂工作环境下的高强度使用需求。本章将系统介绍各型号的功能定位、硬件模块构成及其在典型行业中的应用场景,为后续深入学习设备驱动配置与开发奠定坚实基础。在数据采集过程中,常常需要对原始数据进行清洗、转换、加密等处理。

weixin_34413326的博客 923

Casio DT900、DT930开发包全面解析

数据采集器在物流、零售、制造等行业发挥着至关重要的作用,Casio DT900和DT930系列数据采集器是市场上广受欢迎的两款设备。本章将简要介绍这两款数据采集器的核心技术特点。

weixin_42588672的博客 731

嵌入式软件测试工具——DT10 下载仓库

嵌入式软件测试工具——DT10 下载仓库 去发现同类优质开源项目:https://gitcode.com/ 欢迎来到嵌入式软件测试工具——DT10的下载仓库!这里提供了专为嵌入式软件工程研发的下一代动态测试工具——DT10。 产品简介 DT10作为最新的嵌入式软件开发动态测试及调试工具,它将众多传统嵌入式测试工具的功能整合为一个强大的解决方案,旨在为嵌入式软件项目提供专业的测试与调试支持。不同于其...

gitblog_06786的博客 340

卡西欧DT900、DT930采集器开发工具包的深入理解与应用

卡西欧DT900和DT930是两款广受欢迎的数据采集器,它们的设计兼顾了便携性与专业性,广泛应用于仓库管理、库存盘点、物流跟踪等领域。本章节旨在为读者提供这两款设备的基本信息,并分析它们在实际工作中的应用场景。

weixin_35732273的博客 375

Robomaster大疆遥控器DT7&DR16介绍与C型开发板通信教程

DR16接收机输出的信号为标准的DBUS协议数据,当遥控器与接收机建立连接 后,接收机每隔14ms通过DBUS发送一帧18字节数据。数据内容包括左右两个摇杆的数据,左右上角的两个开关拨杆,以及左侧上方的云台俯仰控制拨轮。

2302_80641606的博客 1万+

DT10动态测试安装包

DT10动态测试安装包

最先进的动态测试及调试工具--DT10

不依赖OS 和CPU 无限制进行调试和测试

探索音叉型晶体谐振器:DT-38、DT-381、DT-26 与 DT-261 的卓越性能

音叉型晶体谐振器 DT-38、DT-381、DT-26 和 DT-261 以其卓越的性能、多样化的应用和可靠的质量,成为电子行业中不可或缺的重要组成部分。反之,如果成本是一个重要的考量因素,而对性能的要求相对较为宽松,基础型的晶体谐振器可能是更好的选择。预计 DT 系列晶体谐振器将不断优化和改进,在更小的尺寸、更低的功耗、更高的精度和更宽的温度范围等方面取得突破。同时,随着智能制造技术的发展,晶体谐振器的生产制造将更加自动化和智能化,进一步提高产品的质量和一致性,降低生产成本,为市场提供更具竞争力的产品。

2401_86334675的博客 1013

嵌入式软件测试工具——DT10

DT10是为嵌入式软件工程研发的“下一代动态测试工具”,是最新的嵌入式软件开发动态测试及调试工具 。它将众多传统嵌入式测试工具的功能整合为一个强大的解决方案,专门使用于嵌入式软件项目。而且它能够独立于特定的嵌入式操作系统(OS)或CPU,不受其限制。

CASIO DT900和DT930 数据采集器 通讯程序MULTIDROP使用说明

1.MULTIDROP使用说明   1、使用安装盘按提示安装到PC上    2、在程序组中打开MULTIDROP    3、第一次使用请注意以下设置:        1.Settings-->Operative setting:1        2.Settings-->File setting:               Application storage director

数据采集 盘点 扫描条码 casio 5548

14自由度汽车动力学模型

多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。

chao189844的博客 1197

WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。

T_Tboy的博客 3051

DT10功能介绍 - DT10多波示波器

功能介绍 有些嵌入式软件方面的问题,利用传统的调试器可能无法解决,而通过逻辑分析器则能有效地解决。但是,从传统意义上讲,逻辑分析器是硬件工程师用来调试数字电路的。嵌入式软件工程师在使用分析器之前,要做很多准备工作,因为该工具不是一个专门用来解决问题的软件。 DT10的多波示波器+模拟盒是专门为解决嵌入式软件的问题而研发的,它的功能与逻辑分析器或示波器的功能很相似。它可以捕获并显示运行时软

Trinity_Techologies的博客 1725

three.js 载入 3D 模型的方法

三维模型的加载器ColladaLoader模型加载器。GLTFLoader模型加载器。OBJLoader模型加载器。FBXLoader模型加载器。

w418856的博客 4362

从IT到DT,再到OT

从技术发展史看产业变化:从IT到DT,再到OT 有句话叫:生产力的变革会引起生产关系的变革。一代英雄老去,新一代英雄崛起,皆因此。所以我们需要及时审视技术变化,以及带来...

阿朱=行业趋势+开发管理+架构 6780

循环神经网络(RNN)原理及BPTT算法

因循环神经网络基于ANN之上,理解ANN有助于理解RNN,所以阅读此文,建议先阅读。

L 1768

uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程及本地调试无需部署上线服务器就能直接调起微信登陆授权页面,手机移动端h5公众号页面利用微登录拿到用户数据!

uni-app,微信公众号,h5网页,uniapp网页端,手机端H5公众号页面,微信网页登陆,uniApp详细实现公众号的登录,微信授权第三方网站登录,流程及逻辑详细教程,OAuth2.0,公众号网页授权,微信网页授权通过code换取网页授权,redirect_url,参数错误,解决,报错,无法调起,如何申请测试公众号,微信公众平台测试号的申请与使用,获取用户openid手机号昵称头像,利用测试号实现本地调试微信登录授权,本地无法调试怎么办,测试公众号,在开发环境下怎么测试,用项目本地ip地址,微信公众号平

🏆 前端领域优质创作者 5063

DALI DT6 和 DALI DT8有什么区别?

DALI(数字可寻址照明接口)是一种用于数字照明控制的协议,允许连接和配置可靠、可扩展和灵活的照明网络。DALI是目前使用最广泛的数字协议。在谈到DALI控制时,除了DALI-2之外,经常提到DALI DT6和DALI DT8。但是这些定义是什么意思呢?他们有和区别?请往下看。

weixin_35905625的博客 1659

PaddleOCR全版本完整指南:从入门到精通,全面解析安装部署与高级应用

摘要 本文详细介绍了PaddleOCR的完整安装与使用指南。首先讲解了环境准备步骤,包括Python 3.11虚拟环境创建和PaddlePaddle框架的CPU/GPU版本安装。接着介绍了PaddleOCR库的安装方式,可选功能模块(文档解析、信息抽取、翻译等)及其依赖组。通过示例代码演示了PPStructureV3文档解析功能的基本用法,并提供了安装验证方法。最后针对常见问题(Windows中文用户名报错、模型下载问题)给出解决方案。文章为从入门到精通的PaddleOCR用户提供了全面的技术指导。

算法工程师 1366

DT测试(转)

定义 DT:Driving Test,路测。 DT测试是使用测试设备沿指定的路线移动测量无线网络性能的一种方法,进行不同类型的呼叫,记录测试数据,统计网络测试指标。在DT中模拟实际用户,不断的上传或者下载不同大小的文件,通过测试软件的统计分析,获得网络性能的一些指标。 移动通信运营商为测试业务质量,一般每年都会例行安排第三方专业测试公司对网络质量进行DT测试,并为网络优化提供决策参考。 ...

weixin_30731305的博客 3850

我装了10个ClawHub技能,这些最好用!

ClawHub就是Clawdbot的"应用商店"。Clawdbot是手机ClawHub是App Store技能就是各种App装了技能,Clawdbot才能干更多事。这个技能解决了我的信息过载问题。为什么装我订阅了很多Newsletter。每天收到一堆长文章,根本看不完。怎么用“总结这篇文章的核心观点”“把这个Newsletter提炼成3个要点”“这篇技术博客有哪些可以实践的建议?安装命令真实体验现在我收到长文章,直接转发给Clawdbot。它会提炼出核心要点和行动清单。

Maynor的博客 6101

基于STM32、HAL库的ATMXT1066TD触摸屏控制器驱动程序设计

0x11) // 0x11是ATMXT1066的家族ID。// 最多支持10点触摸。// 足够存储10点触摸数据。

corlin6688的博客 164
上一篇: 自动化的软件测试及调试工具 DT10
下一篇: 通过静态分析和持续集成 保证代码的质量 (Helix QAC)1
Trinitytec
博客等级 码龄11年 165粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值