当前位置: 首页 > news >正文

Lauterbach使用指南之RunTime功能

Lauterbach使用指南之RunTime功能

前言

首先,请问大家几个小小问题,你清楚:

  • Lauterbach这个工具是干什么用的吗?
  • 在软件运行过程中如何测量两个运行point之间的runtime时间呢?
  • Lauterbach的RunTime功能具体应当如何来操作获取我们想要的结果;

今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

在这里插入图片描述


正文

Lauterbach工具基本介绍

Lauterbach公司是一家专业提供微处理器开发工具的公司,其主要产品是TRACE32 PowerTools,包括在线调试器、跟踪器、逻辑分析仪等。Lauterbach公司成立于1979年,总部位于德国霍夫,是全球最大的私营嵌入式系统调试工具供应商

Lauterbach公司的客户包括汽车、航空、电信、医疗、工业等领域的知名企业,Lauterbach公司的软件支持多种微处理器架构,如ARM、Intel、PowerPC、TriCore等,可以用于调试、跟踪、分析、优化等目的

Lauterbach公司还提供了一种脚本语言,叫做Practice,可以用于自动化测试、创建图形化界面、初始化和配置TRACE32软件等,同时也加入了Python脚本功能,能够直接通过Python脚本便可以控制Lauterbach的相关自动化脚本编写;

Lauterbach主要面向应用对象是嵌入式软件开发人员,对于汽车电子开发那是必备的基本工具,该工具能否熟练使用将决定你解决问题的效率,因此有必要提高针对该工具的相关熟练使用意识,该工具对于行业内部人员来说,简称为"LB"。

后续小T也会针对Lauterbach其他功能做进一步的介绍,欢迎大家多多关注。

RunTime功能应用场景

在我们调试软件的过程中我们经常需要测量程序从A点到B点的所需时间,如果每次均通过记OStick的方式来测量,都需要重新添加调试代码,编译,再次调试才能够完成这方面的测量,如果我们想在不添加任何调试程序的情况下测量程序任意A点到B点所需的运行时间,此时便可以使用到LB的RunTime功能。

LB通过RunTime功能便可以实现程序从任意A点到B点的运行时间,让我们能够快速完成程序任意执行runtime时间的测量。

RunTime功能使用说明

接下来,我们来了解下LB的RunTime功能的具体使用,以下小T将从如下四个方面进行展开讲解:

  • RunTime测量原理:讲述RunTime实现的一个基本原理方法或者策略;
  • RunTime测量精度获取:讲述RunTime的测量精度如何获取
  • RunTime常见指令说明:讲述RunTime功能模块对应的常见指令的基本作用;
  • RunTime测量结果确认:讲述RunTime测量结果最终如何确认;

如下图为RunTime的功能界面可通过如下的方式可以调出:
在这里插入图片描述
在这里插入图片描述

图1 LB的RunTime功能界面

RunTime测量原理

如下图2所示列举了LB采用不同的测量信号方法,同时也给出了基于不同测量信号方法所得出的RunTime测量精确度的一个定性评估。
在这里插入图片描述

图2 LB的RunTime测量原理

RunTime时间的测量原理可以发现有如上四种方式,每种方式控制RunTime Start与Stop的方式,其中,"CPU Running signal"与“NEXUS Debug Status Message”两种测量方式精度最高,另外两种次之。

对于绝大多数芯片架构而言,一般基本上采用的是“Polling the PC”的方式来进行测量,最小的Polling时间为1ms,对于ARM7或者ARM9芯片架构,一般采用的"CPU running signal"测量方法,一般测量精度较高。

RunTime测量精度获取

如果需要获取当前RunTime的测量精度,LB也提供了如下一条非常简洁的指令来获取当前RunTime功能的测量精度:

RunTime.ACCURACY()

RunTime常见指令说明

为了便于大家及时查阅相关指令,小T将LB的RunTime功能常见的指令及其功能说明整理如下表:
在这里插入图片描述

图3 LB的RunTime常见指令说明

注意:上述绝对时间的得出,参考时间原点均为调用指令System.up或者RunTime.Init开始记时。

RunTime测量结果确认

如下图为执行RunTime.State指令或者上图1中通过菜单栏调出的最终结果,我们需要能够看懂各时间参数含义:

image-20231022215003308

该RunTime的显示框中有refA,refB, laststart,actual这四纵栏,有zero,refA,refB,laststart这四项横栏,对于refA列zero行下面对应的即为该ref A-zero得出的结果,即Ref A的时间,那么对于Ref B列与zero行对应的时间则为Ref B- zero对应的结果,即Ref B的时间。

同理如果想知道最近一次执行Go到Break两者之间的时间,则只需要看actual列与laststart行对应的时间即可,如上图为30.100us,即如果我们想知道程序运行A点至B点的所需时间,可以提前在程序A点与B点分别打上断点,待程序运行至A点后,再点击“Go”指令运行至B点时就会停下,此时查看actual列与laststart行对应的时间就为程序A点至B点的运行时间,即每次只需要看最右下角的时间即可。

好了,以上就是本次LB的RunTime功能的精华内容总结,希望能够大家带来帮助,也希望大家能够多多转发分享!

更多精彩内容,欢迎大家多多关注公号“ADAS与ECU之吾见”!!!

相关文章:

  • 服务器之日常整活
  • golang连接池检查连接失败时如何重试
  • SpringAOP源码解析之advice执行顺序(三)
  • Spring Boot 配置邮件发送服务
  • 【实用网站分享】
  • 刷题笔记day01-数组
  • Lvs+Nginx+NDS
  • conda: error: argument COMMAND: invalid choice: ‘activate‘
  • 如何在IDEA中配置指定JDK版本?轻松解决!!!
  • 在vscode中运行c++代码,windows 11系统
  • 【LeetCode力扣】189 53 轮转数组 | 最大子数组和
  • C++-类与对象(上)
  • Vue学习之样式汇总
  • 什么是React中的高阶组件(Higher Order Component,HOC)?它的作用是什么?
  • Vue引入异步组件
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android优雅地处理按钮重复点击
  • C# 免费离线人脸识别 2.0 Demo
  • eclipse(luna)创建web工程
  • ES6语法详解(一)
  • learning koa2.x
  • leetcode386. Lexicographical Numbers
  • React as a UI Runtime(五、列表)
  • Service Worker
  • vagrant 添加本地 box 安装 laravel homestead
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 产品三维模型在线预览
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 后端_ThinkPHP5
  • 漂亮刷新控件-iOS
  • 浅谈web中前端模板引擎的使用
  • 软件开发学习的5大技巧,你知道吗?
  • 深度学习中的信息论知识详解
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小而合理的前端理论:rscss和rsjs
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​Java并发新构件之Exchanger
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (10)STL算法之搜索(二) 二分查找
  • (分类)KNN算法- 参数调优
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)大型网站架构演变和知识体系
  • (转)视频码率,帧率和分辨率的联系与区别
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程