功能介绍
 
有些嵌入式软件方面的问题,利用传统的调试器可能无法解决,而通过逻辑分析器则能有效地解决。请仔细阅读本文, 看我们如何一步一步地讲解在这种情况下所需的配置。
 
但是,从传统意义上讲,逻辑分析器是硬件工程师用来调试数字电路的。从上面的参考文件中可以清楚地了解到,嵌入式软件工程师在使用分析器之前,要做很多准备工作,因为该工具不是一个专门用来解决问题的软件。
 
DT10多波示波器+模拟盒是专门为解决嵌入式软件的问题而研发的,它的功能与逻辑分析器或示波器的功能很相似。它可以捕获并显示运行时软件的特征,并在示波器上实时显示不断更新的精确时间图表。

DT10 的一些功能能够帮助嵌入式工程师自动完成很多工作,包括:
 
         √ 可以在源代码中自动插入测试点(不需要复杂的代码或脚本)

√ 能够与用户现有的主机通信机制(GPIO, UART, Ethernet 等)进行无缝结合
 
         √ 可获取并显示内核事件的踪迹(如:任务调度器、中断程序,等)
 
         √ 最多可同时获取并实时显示 20 个局部或全局变量
 
         √ 最长可进行长达 30 天的持续执行追踪(针对难以重现的问题)
 
         √ 有离线回溯调试的功能,可回顾实际执行中出现的变量转换情况
 
         √ 示波器数据点和代码的实时执行路径踪迹之间,可通过鼠标单击进行双向定位
 
         √ 可自动生成一系列分析报告,帮助发现并解决运行时出现的问题

DT10 信号模拟盒
 
除了获取实时的源代码特征之外,DT10 模拟盒组件还能够从目标设备上获取逻辑和模拟信号。动态追踪器会同时同步硬件和软件的数据,并将这些数据通过同一个时间图表实时显示在多波示波器上。

这个工具在排除嵌入式软件故障方面的功能的确非常强大!

将 DT10 的动态追踪器和模拟盒结合起来,能非常有效地帮助嵌入式工程师来定位引发难以重现的软件问题的根源。

功能显示
 
近程检测器设备使用传感器来计算正在靠近的目标的距离。在该设备上运行的软件是用来计算距离的,然后再利用所得到的结果,根据目标距离的远近来启动1个,2个,或3个LED信号。
 
在这个例子中,我们利用
DT10 来监控嵌入式软件在运行时的特征,并将其与 LED
在这期间的行为关联起来,因而在任何情况下,我们都可以准确知道该软件在硬件上执行某个指定事件时所处的状态。同样地,我们还可以利用 DT10
监控正在执行的软件的特征,并确定此时硬件上的逻辑或模拟信号的状态。

使用 DT10 动态追踪器
 
1. 插入测试点
 
通过使用 DT10,可以将测试点自动插入源代码,以获取并输出软件在目标硬件设备上运行时的特征。这些特征包括:精确的时间信息、覆盖率信息、事件、变量监控数据,等等。
 
2. 配置测试点输出
 
在这个例子中,我们通过配置测试点,将执行软件的追踪数据通过 GPIO 口发送到动态追踪器装置上。目标设备上的 GPIO 针孔与 DT10 动态追踪器的 GPIO 口相连接。
 
3. 捕获 LED 数字信号
 
DT10
模拟盒也与目标设备相连接,通过设备上的3个LED来获取逻辑信号。为了响应附近的某个目标,设备上的 LED 会自动打开或关闭,这样 DT10
就可以准确追踪并监控信号高低转变的情况了。通过使用一个单独的时钟脉冲源,动态追踪器就能够自动同步 LED 在打开和关闭状态下所获取的数据。
 
这样配置工作就完成了。
 
如果有需要的话,可以让目标设备运行尽可能长的时间,以重现有问题的行为。通过 DT10 动态追踪器所获取的所有数据都会被同步并发送到安装在所连接的主机上的 DT10 软件中。多波示波器可以对这些数据进行实时监控,而且以后还可以回放。
 
测试一旦完成,DT10 分析引擎就会对所获得的数据进行扫描,并自动生成一系列分析报告,以帮助解决嵌入式软件中的问题。

DT10 生成报告这一步,有效地为工程师减少了很多负担!

分析
 
第一部分: 根据 LED 逻辑信号特征,确定软件的执行状态
 
可以用多波示波器来检测逻辑或模拟信号的踪迹,并通过运行传感器 LED 找出可能存在问题的阵列,然后确定嵌入式软件执行过程中出现该阵列的具体时间。一旦发现了出现问题的具体位置,DT10就会同步生成分析报告,该报告有助于从不同视角检测软件在运行时的特征。
 
为了识别 LED 逻辑信号中可能存在问题的阵列,用户可以在示波器中将其缩小,并通过手动滚动来查看执行的踪迹;然后再放大,来对自己认为可能有问题的地方进行仔细检查。
 
或者,用户可以利用 DT10 的回放功能和自动停止条件在示波器中有效地回放执行情况,而且在符合自动停止条件的情况下(如:LED1 继续,LED2 继续,LED3 断开),DT10会自动停止回放。

既然我们已确定了可能存在的地方,我们就可以在示波器上对其进行放大。在示波器上随便点击一下,DT10 就可以根据由其生成的一系列软件分析报告,来同步那个时间点的执行情况,包括软件当时所处的状态。
 
下面的截图显示了由 DT10 生成了几个视图,这些视图能够帮助发现并解决问题:

这样工程师就能够,比如,在某个信号状态出现之前、之时、之后检测代码变量的转变情况,或者能够逐步跟踪执行路径,并在硬件出现某些特殊行为之前,发现是在执行了哪一行代码,哪个分支时出现该问题的。
 
还有很多其它非常有用的、深入的报告,能够帮助工程师分析运行时引发软件问题的根源。
 
第二部分:根据软件执行时的特征,确定 LED 的状态
 
在前面的例子中,我们先使用多波示波器来确定 LED 逻辑信号踪迹所形成的阵列,再用 DT10 将其与软件当时的运行特征联系起来。
 
相反地,DT10 也能够很有效地查出软件在运行时的具体特征(如:变量的状态、出现的某个软件事件、执行代码的第几行)并将其与当时的 LED 信号状态联系起来。所以,我们也能够看到软件在特定的状态下,LED 逻辑信号的情况。
 
这个例子中,软件中的变量“g”存储的是传感器与接近目标之间的计算距离。软件会根据这个变量值将设备 LED1,2,3 设置为启动状态。

我们还能够搜索 DT10 测试报告,找出变量呈现异常值的情况。
 
然后在测试报告中点击有问题的那一步,DT10 就会更新其它活动窗口,让所有窗口都显示该运行时的情况。然后我们就可以通过多波示波器放大来查看逻辑和模拟信号的状态,以了解当时的 LED 状态。

总结
 
DT10 多波示波器和模拟盒在发现并解决嵌入式软件的问题方面有非常独特的能力。它的功能类似于逻辑分析器和示波器,可以让软件工程师看到代码的执行情况。但是 DT10 多波示波器是专门为嵌入式软件设计的,所以它的安装和配置更为简便。
 
嵌入式开发项目过程中经常会遇到一些非常难以重现的问题,DT10 的解决方案可以对这些问题进行追踪,帮助解决该问题。

“原创内容,转载请标明出处”

DT10功能介绍--DT10多波示波器的更多相关文章

  1. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  2. Python中生成器和迭代器的功能介绍

    生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i f ...

  3. 微信小程序产品定位及功能介绍

    产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...

  4. 带你走近AngularJS - 基本功能介绍

    带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自定义指令 ------------- ...

  5. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  6. Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?

    Joomla 软件功能介绍:    Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义 ...

  7. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  8. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  9. 网页引导:jQuery插件实现的页面功能介绍引导页效果

    现在很多网站不仅是介绍,更多的是有一些功能,怎么样让客户快速的知道网站有哪些功能呢?这里pagewalkthrough.js插件能帮我们实现,它是一个轻量级的jQuery插件,它可以帮助我们创建一个遮 ...

随机推荐

  1. cgdb | 一起边看源码边调试gdb吧

    简介 cgdb是一款轻量级的基于gdb的命令行可视化工具,关系大致如下: 尽管gdb本身可以通过layout src的命令显示源码布局,但是其功能还是过于简陋. 使用cgdb并不需要你重新去学习过多额 ...

  2. Linux基础二:文件系统

    二.文件系统: Linux系统一切皆文件!整个文件系统是一棵颠倒过来的树形结构,根目录/在顶部,且从根目录到下面的任一文件有且仅有一条路径. 1.重要目录: /usr -> 存放普通用户命令(/ ...

  3. HTTPS-自己生成数字证书

    一.获取证书的途径 自签名证书,适用于开发者测试HTTPS,最快速的途径就是生成自签名证书,非常方便. Let's Encrypt证书,可以使用免费CA机构签发的证书. 使用收费CA机构签发的证书,如 ...

  4. 常用的分布式ID生成器

    为何需要分布式ID生成器 **本人博客网站 **IT小神 www.itxiaoshen.com **拿我们系统常用Mysql数据库来说,在之前的单体架构基本是单库结构,每个业务表的ID一般从1增,通过 ...

  5. R语言与医学统计图形-【14】ggplot2几何对象之直方密度图

    ggplot2绘图系统--几何对象之直方图.密度图 1.直方图 参数. geom_histogram(mapping = , data = , stat = 'bin', #统计变换,概率密度为den ...

  6. 毕业设计之mysql+主从复制+keepalived

    环境介绍 mysql_VIP:192.168.111.123 mysql_M!:192.168.111.151 mysql_M2:192.168.111.152 安装mysql可以查看 两个数据库都需 ...

  7. Scrapy-Redis的安装和使用

    Scrapy-Redis是Scrapy的分布式扩展模块,有了它,我们就可以方便地实现Scrapy分布式爬虫的搭建.GitHub:https://github.com/rmax/scrapy-redis ...

  8. 27-Roman to Integer-Leetcode

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  9. Requests的安装和使用

    一.Requests的安装1.pip3 install requests2.验证 import requests 不报错即可

  10. SpringCloud微服务实战——搭建企业级开发框架(二十八):扩展MybatisPlus插件DataPermissionInterceptor实现数据权限控制

    一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我们来介绍,通过扩展Mybatis-Plus的插件DataPermissionInterce ...