0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何调用Ozone支持的脚本函数来实现自动化的调试工作

我快闭嘴 来源:麦克泰技术 作者:麦克泰技术 2022-09-30 11:14 次阅读

Ozone是一个跨平台支持的代码调试软件,支持Segger J-link和J-Trace调试器。可以加载IAR、keil、GCC、clang/LLVM等工具链编译生成的Elf/Dwarf可执行文件,进行C/C++源码调试和汇编指令调试。

Ozone项目工程文件的结构是一种类似于C语言的脚本语言,允许用户通过编辑该脚本文件来配置Ozone软件的用户界面和自动化调试工作流程。本文将介绍如何调用Ozone支持的脚本函数来实现自动化的调试工作。

722b57ce-406c-11ed-b1c7-dac502259ad0.png

可以通过Ozone软件GUI所执行的大多数操作都有一个对应的脚本函数,在工程文件中调用该函数即可实现同样的效果。例如设置断点,观察某个变量或者寄存器的值,将某些分析视图的结果数据导出等等。以及自定义芯片程序在Debug开始之前,Debug暂停和芯片复位之后需要执行的特定操作等等。这些都可以通过编辑Ozone工程文件来实现。

Ozone支持的脚本函数的功能和作用的详细介绍在Ozone用户手册中有详细的介绍,大多数函数从其命名中即可清晰直观的了解到所对应执行的操作。下面将简单介绍一些常用脚本函数的例子。

例如通过调用函数来设置断点,脚本函数支持各类型断点的操作,包括断点设置,使能,删除等操作。支持在特定代码位置设置代码断点或者数据断点,只需要在脚本文件调用对应的函数即可。

72cb5062-406c-11ed-b1c7-dac502259ad0.png

可以通过函数指定在哪个C文件的什么代码行位置设置断点,例如在OS_TraceDemo.c文件的第190行位置设置代码断点。

7313b942-406c-11ed-b1c7-dac502259ad0.png

733553f4-406c-11ed-b1c7-dac502259ad0.png

当设置的断点在自动化调试过程中被触发的时候,可以通过Break.SetCommand函数指定该断点被触发时需要执行的操作。

735e8be8-406c-11ed-b1c7-dac502259ad0.png

可以根据每个断点位置设置对应的操作,例如在OS_TraceDemo.c第190行位置断点被触发时调用脚本文件中的OnBPHit2()函数,在该函数中将指令跟踪调试Trace到的数据分析结果通过Profile系列函数进行导出,支持导出为txt格式或者csv格式。

738edf82-406c-11ed-b1c7-dac502259ad0.png

在对应的文件路径下即可找到所导出的指令跟踪分析结果,代码覆盖率分析的结果如下。

73b9d9da-406c-11ed-b1c7-dac502259ad0.png

在脚本自动化执行过程中可以将相应的log或者错误信息输出到Ozone的控制台窗口,通过调用Util系列函数来实现。

73ec7a02-406c-11ed-b1c7-dac502259ad0.png

如果不想通过Ozone的控制台窗口查看输出,也可以调用函数将log信息保存到指定的log文件中。

74112122-406c-11ed-b1c7-dac502259ad0.png

在脚本的log文件中可以看到自动化调试的执行记录,包括断点的触发记录,以及触发后执行的对应操作等。如调用了Watch.Add函数在watch观察窗口观察某个变量的数值,调用函数后,Ozone的watch窗口中将会添加对应的变量。

742ba68c-406c-11ed-b1c7-dac502259ad0.png

此处通过函数添加观察的变量名称是“on”,在设置的断点2被触发时该变量的值为1。

7473838a-406c-11ed-b1c7-dac502259ad0.png

本文简单介绍了下Ozone支持的脚本函数,以及调用这些函数所能够实现的自动化调试功能,包括在指定位置设置各类型断点,指定断点被触发后对应执行的操作,自动导出Trace跟踪的数据结果等等。Ozone支持的众多脚本函数和命令允许用户在需要执行大规模调试工作的时候进行自动化调试,能够减轻客户测试工程师的工作。Ozone支持的完整脚本函数的详细介绍请参考Ozone的用户手册,本文中介绍使用的完整工程示例可以通过如下链接进行下载,感兴趣的用户也可以动手进行尝试。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7521

    浏览量

    127208
  • 调试器
    +关注

    关注

    1

    文章

    286

    浏览量

    23392
  • 脚本函数
    +关注

    关注

    0

    文章

    4

    浏览量

    1755

原文标题:如何设置SEGGER Ozone调试器执行自动化调试?

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深圳招聘-高级自动化试工程师(熟练掌握LabVIEW、TestSta...

    自动化试工程师岗位职责: 1. 负责板卡或组件自动化试工装方案的设计; 2. 根据板卡或组件自动化
    发表于 11-15 09:04

    ccs和quartus实现自动化调用

    由于要批量的进行DSP和CPLD的烧录,并且要对烧录记录进行管控,所以最近想开发一个程序实现CCS和quartus这两个软件配置及烧录部分的自动化调用,但是现在没有思路,有一些C语言的基础想拿C++来开发,求大神指导一下思路,最
    发表于 12-14 02:31

    【上海】猎头推荐职位-自动化试工程师(java/python)

    猎头职位:自动化试工程师(java/python)工作职责:1.负责测试报告输出、项目风险评估,对测试结果负责;2.负责对产品进行接口测试/自动化测试/性能测试/安全测试等
    发表于 06-28 17:37

    【北京】诚聘自动化试工程师

    猎头招聘:自动化试工程师(薪资:25-40 K/月)工作职责:1、负责硬件相关测试效率的提升;2、负责老化测试,长时间可靠性验证及其自动化试工
    发表于 12-05 16:15

    灵动微课堂 (第161讲) | MM32F013x——巧用Ozone调试MM32 MCU

    跟踪)- 可编写脚本的项目文件可自动设置所有内容- 新项目向导可简化新项目的基本配置Ozone支持的编译器:Embedded Studio,GCC,Clang,MDK,IAR。02
    发表于 03-26 09:27

    SEGGER Ozone调试器使用攻略!

    源码调试和汇编指令调试。通过J-Link实现高速下载和无限Flash断点功能(需J-Link型号支持)。本文将介绍如何使用Ozone
    发表于 08-11 17:10

    TPTTPT动态自动化试工具怎么样

    关于TPTTPT是一款基于模型的动态自动化试工具,它提供了一套高效的测试建模方法,覆盖MiL、SiL、PiL、HiL、ViL等全阶段的测试过程。我们可以使用TPT将测试执行到测试报告生成的所有
    发表于 12-21 06:17

    如何使用Ozone分析Cortex-M故障?

    命令可用于在调试启动时修改 Ozone 的默认向量捕获初始行为。该命令在项目脚本函数OnProjectLoad中使用。三、
    发表于 09-23 11:26

    如何实现Ozone项目可移植?

    调试和汇编指令调试Ozone调试器加载elf文件时,会自动查找elf文件中引用的源文件。但大多数编译器会把源文件的路径设置成绝对路径,如果
    发表于 01-05 13:56

    一款开源串口调试助手,支持指令调试、协议解析、自定义上位机面板、自动化测试、以及自动响应

    由于一直没有找到适合自己的调试工具, 所以自己写了一个 ~~~指令管理支持多种参数构建方式,省去大小端以及进制转换的步骤支持无限制保存通讯数据,可通过文件夹的方式进行分类管理支持快捷
    发表于 02-07 11:23

    自动化测试脚本开发技巧

    开发自动化测试脚本的技巧和心得软件测试 增量式调试脚本 录制测试脚本,和其他的软件开发成果一样,会变得非常大。为了可以成功的回放,需要
    发表于 03-26 16:24 53次下载

    分享Perl和Python脚本轻量实用的调试工

    Perl和Python作为目前芯片开发流程中最为流行的脚本语言,本文将分别介绍它们轻量且实用的调试工具(Debugger),让你在调试脚本的时候不再抓瞎。
    的头像 发表于 01-21 17:25 1313次阅读
    分享Perl和Python<b class='flag-5'>脚本</b>轻量实用的<b class='flag-5'>调试工</b>具

    keil自动化编译脚本

    这是一个 keil 的自动化编译脚本,可被其他脚本或程序调用,接收参数并按参数编译 keil 工程,而不必打开 keil 软件,实现程序上的
    的头像 发表于 10-16 17:04 561次阅读
    keil<b class='flag-5'>自动化</b>编译<b class='flag-5'>脚本</b>

    脚本调试工具有哪些?脚本调试工具怎么用?

    脚本调试是软件开发过程中非常重要的一环,它能帮助开发者快速定位并解决代码中的错误。大多数编程语言都提供了各种各样的脚本调试工具,本文将介绍一些常见的
    的头像 发表于 12-01 14:40 282次阅读

    linux用gdb调试遇到函数调用怎么办?

    。 要顺利进行函数调用调试,首先需要准备好代码和符号表。在编译代码时,需要加上 `-g` 参数来生成调试信息。这样编译器会在可执行文件中嵌
    的头像 发表于 01-31 10:33 186次阅读