当前位置: 首页 > 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之吾见”!!!

相关文章:

Lauterbach使用指南之RunTime功能

Lauterbach使用指南之RunTime功能 前言 首先,请问大家几个小小问题,你清楚: Lauterbach这个工具是干什么用的吗?在软件运行过程中如何测量两个运行point之间的runtime时间呢?Lauterbach的RunTime功能具体应当如何来操…...

GaussDB数据库管理系统介绍

1.GaussDB的发展 2.GaussDB的生态 内部: 云化自动化方案。通过数据库运行基础设施的云化将DBA(数据库管理员)和运维人员的日常工作 自动化。外部: 采用与数据库周边生态伙伴对接与认证的生态连接融合方案,解决开发者/DBA难获取、应用难对接等…...

使用docker部署lnmp多站点

1. 创建一个 Docker 网络 以便容器可以在同一网络上进行通信 docker network create lnmpnetwork2. 运行 MySQL 容器: 运行 MySQL 容器并将其连接到创建的网络。确保将 MySQL 的端口映射到宿主机上,以便您可以从宿主机访问数据库。 将mysql的配置和数…...

实例详解:Java使用JWT和Redis实现高效单点登录(SSO)

前言 单点登录(Single Sign-On,简称SSO)是一种身份验证和访问控制机制,允许用户使用一组凭证(如登录名和密码)登录到多个应用程序中,而无需为每个应用程序单独进行身份验证。用户只需要登录一次…...

SQL中使用ROLLUP和CUBE函数轻松生成汇总行

在数据分析和报表制作中,通常需要对数据进行汇总和分组,我们常用的就是GROUP BY汇总数据,当我们想按照不同维度汇总时,往往需要编写多个GROUP BY预计,而借助ROLLUP 和 CUBE 函数可以一次性生成子总计和总计行&#xff…...

CentOS 7 安装和配置java环境

1 安装包准备 安装包可以通过下面地址进行版本选择安装: https://www.oracle.com/java/technologies/downloads/#java8 2 正式开始安装 本次分享的安装方法直接通过编辑/etc/profile文件实现java的安装 2.1 新建安装包存放目录 mkdir /java cd /java/ 2.2 解压安…...

「实验记录」CS144 Lab0 networking warmup

文章目录 一、Motivation二、SolutionsS1 - Writing webgetS2 - An in-memory reliable byte stream 三、Results四、Source 一、Motivation 第一个小测试 webget 是想让我们体验并模拟一下在浏览器中键入 URL 后获得远程服务器传来的内容,这并没有太大的难度&…...

html5怎么实现语音搜索

html5怎么实现语音搜索 谷歌的网站在他们首页发现了HTML5的新玩法——语音搜索。 注意&#xff1a; 只有webkit核心的浏览器才能使用 用法很简单 只需要在input添加属性x-webkit-speech即可&#xff0c;例子如下&#xff1a; 代码如下: <input type"text" x-…...

吴恩达《机器学习》1-2:什么是机器学习?

一、什么是机器学习&#xff1f; Arthur Samuel&#xff08;1959&#xff09;&#xff1a; 他定义机器学习为&#xff0c;在进行特定编程的情况下&#xff0c;给予计算机学习能力的领域。 Tom Mitchell&#xff08;1998&#xff09;&#xff1a; 他定义的机器学习是&#xff0c…...

基于STC系列单片机实现定时器扫描数码管显示定时器/计数器产生频率的功能

#define uchar unsigned char//自定义无符号字符型为uchar #define uint unsigned int//自定义无符号整数型为uint #define NixieTubeSegmentCode P0//自定义数码管段码为单片机P0组引脚 #define NixieTubeBitCode P2//自定义数码管位码为单片机P2组引脚 sbit LED P1^0;//位定义…...

Linux环境开发工具yum、makefile的使用 【Linux】

文章目录 Linux软件包管理器 - yumLinux下安装软件的方式yum查找软件包如何实现本地机器和云服务器之间的文件互传卸载软件Linux编译器 - gcc/g 程序的翻译过程1.预编译&#xff08;预处理&#xff09;2.编译&#xff08;生成汇编&#xff09;3.汇编&#xff08;生成机器可识别…...

第六章(6):Python中的函数—闭包和装饰器

1.闭包 在Python中,闭包是指函数与其相关的自由变量的一个整体。当一个函数返回了一个内部函数时,这个内部函数可以访问其定义所在的外部函数中的变量,即使这个外部函数已经返回了。这种特性就叫做闭包。 代码示意: def funca():x = 250def funcb():print(我仍然可以访问…...

Linux--安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学

一&#xff0c;操作系统介绍 1.1.什么是操作系统 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是一种系统软件&#xff0c;它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源&#xff0c;为应用程序提供接口和服务&#xff0c;并协调…...

基于SSM的个性化美食推荐系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

Django 全局配置 settings 详解

文章目录 1 概述1.1 Django 目录结构 2 常用配置&#xff1a;settings.py2.1 注册 APP&#xff1a;INSTALLED_APPS2.2 模板路径&#xff1a;TEMPLATES2.3 静态文件&#xff1a;STATICFILES_DIRS2.4 数据库&#xff1a;DATABASES2.5 允许访问的主机&#xff1a;ALLOWED_HOSTS 1 …...

uniapp接口请求api封装,规范化调用

封装规范和vue中的差不多&#xff0c;都是统一封装成一个request对象&#xff0c;然后在api.js里面调用。 先创建一个utils文件夹&#xff0c;然后里面创建一个request.js&#xff0c;代码如下&#xff1a; export const baseURL 基础url地址const request (options) > …...

色彩校正及OpenCV mcc模块介绍

一、术语 1.光&#xff1a;是电磁波&#xff0c;可见光是可被人眼感知的电磁波。可见光大约在400-700nm波段。光子携带的能量与波长成反比&#xff0c;400nm--700nm之间的单色光的颜色从紫色渐变成红色。 2.光谱&#xff1a;除了太阳光源外&#xff0c;LED灯、白炽灯等各种照明…...

2023mathorcup大数据数学建模竞赛A题坑洼道路识别67页完整高质量原创论文

大家好&#xff0c;从昨天肝到现在&#xff0c;终于完成了本次mathorcup大数据数学建模竞赛A题基于计算机视觉的坑洼道路检测和识别的完整论文了。 给大家看一下目录吧&#xff1a; 摘 要&#xff1a; 10 一、问题重述 12 二&#xff0e;问题分析 13 2.1问题一 13 2.2问题…...

【k8s】5、资源管理命令-声明式

目录 一、 yaml和json介绍 1、yuml语言介绍 2、k8s支持的文件格式 3、yaml和json的主要区别 二、声明式对象管理 1、命令式对象配置 2、声明式对象配置 3、声明式对象管理命令介绍 三、编写资源配置清单 1、 编写yaml文件 2、 启动并查看资源 3、创建service服务对外…...

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】 课本里章节里所有蓝色字体的思维导图...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

Springboot 高校报修与互助平台小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;高校报修与互助平台小程序被用户普遍使用&#xff0c;为…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...

基于django+vue的健身房管理系统-vue

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.8数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;PyCharm 系统展示 会员信息管理 员工信息管理 会员卡类型管理 健身项目管理 会员卡管理 摘要 健身房管理…...

河北对口计算机高考MySQL笔记(完结版)(2026高考)持续更新~~~~

MySQL 基础概念 数据&#xff08;Data&#xff09;&#xff1a;文本&#xff0c;数字&#xff0c;图片&#xff0c;视频&#xff0c;音频等多种表现形式&#xff0c;能够被计算机存储和处理。 **数据库&#xff08;Data Base—简称DB&#xff09;&#xff1a;**存储数据的仓库…...