硬汉嵌入式论坛

 找回密码
 立即注册
查看: 21506|回复: 27
收起左侧

[Ozone] Ozone使用介绍-基础功能

  [复制链接]

4

主题

51

回帖

68

积分

初级会员

积分
68
发表于 2019-12-5 15:55:16 | 显示全部楼层 |阅读模式
本帖最后由 ndx1986 于 2019-12-5 17:00 编辑

最近刚“忽悠”领导买了个J-Trace Pro,顺便上Segger网上看了看Jtrace的相关介绍官网介绍
SeggerJtrace搭配了一块小的测试板,主控是STM32F407VG100pin),而且也给出了简单的上手视频。并推荐了自家的调试软件Ozone(不包含编译功能,仅能调试,编译的话有自家的SES)。

J-Trace本体&配件

J-Trace本体&配件


其实之前也下载过Ozone,不过也仅限于尝鲜性质的试玩。这次因为购买的Jtrace具备了Trace功能,恰好这两天有点时间,把Ozone的功能基本彻底的试用了一遍。

虽然Ozone感觉在我的系统(S家这点做得比较好,不论是IDE工具还是Ozone这种调试器,都是全平台支持的)上不太稳定(WIN 10 x64教育版),经常死机,但总的来说,感觉还是一款很有自己特色的调试软件,尤其搭配自家调试器(貌似也只能搭配自家……)。所以决定把这些东西写出来大家一起溜溜,写出来可能只能给小白扫扫盲(大神绕道),里面肯定也有各种错误,欢迎拍砖。


从官网下载安装完毕后,需要导入IDE工具生成的相关镜像文件,建议导入elf、axf这种包含更多信息的镜像(官网就有例程可以直接下载导入);同时建议将镜像文件和工程文件夹放在一起的话,Ozone可以将镜像对应的源文件都可以显现出来。

镜像类型描述

镜像类型描述

Ozone的调试功能比较多,我大概划分了3个分类:
A、基本功能:使用和谐版Jlink在Ozone上,或者其他调试器在其他IDE工具上也能实现的基本功能
B、跟踪功能:J-Trace所具有的跟踪功能
C、特殊功能:Ozone所具有的我在IAR和ES、Keil上没见过(当然很可能也是不知道有……)的功能

A、基本功能:在基本功能下,我使用J-Trace时是关闭了Trace功能的,同时我也拿了一个“大家都有便宜的”的Jlink 实验了下也没问题
点下Ozone中的View列表,会出现以下窗口,其中基本功能的窗口如下图,我做了个编号(为显示方便分为两组,0~12为1组,13~19为一组),和后图会对应上。基本上Ozone对应的所有能都在这个View能够提供的列表功能里面。调试器嘛,毕竟可以设置的地方(功能)会少一些

列表介绍1

列表介绍1

直接拿S家官网上的例程跑了下(S家官网的例程是带自家系统embOS的,没有用过……),我把上图的所有功能都展开了,方便看到窗口的实际样式。后面根据窗口的特点做简要描述:

全局界面1

全局界面1

0、文件窗口:
这个没啥可多说的,把工程文件夹的最后实际参与编译的c、文件可以显示出来,和其他家IDE工具不同,Ozone是直接将每行C语句都反汇编放下该语句的下方的

1、断点(追踪窗口):
因为现在还没有加入追踪功能,所以如果仅仅是断点(程序断点和数据断点的话,和keil下也没啥区别)。
断点的一些进阶功能可以参考下这篇帖子
《原来单片机中还隐藏了这些调试技巧 | 颠覆认知》---作者鱼鹰 EmbeddedOsprey
这篇帖子是基于Keil的,我试了下,Ozone的逻辑也差不多。在这个窗口中,会有部分中断向量的断点,应该是这个工程使用了S家自己定义的启动文件才会有,我使用armfly工程包或者自己建立的一些工程就没有这些选框

断点窗口

断点窗口

2、Call Stack窗口:
对比Keil的Call Stack&Locals(keil是将这两个窗口放到一起的),Ozone的Call界面显示的东西会多一些,还显示了发挥地址和PC指针,栈使用量等参数

Ozone Call Statck

Ozone Call Statck

Keil Call Statck

Keil Call Statck

3、反汇编窗口:
和keil也没有什么区别,不过因为Ozone在0文件窗口就支持直接看到反汇编的内容,所以对于Ozone这个窗口的作用可能会变小一些了

Ozone 反汇编

Ozone 反汇编

Keil 反汇编

Keil 反汇编

4、全局变量窗口:
这个功能我没有在keil中看到过,不过感觉还挺好用的,将实际编译进镜像的所有全局变量全部显示出来,因为STM32的所有全局变量都是有固定内存地址的,所以内存地址、数据类型、以及定义所在文件,都可以直观显示出来。
同时右键还可以将这些全局变量添加到数据断点,添加数据曲线等窗口,也可以在源文件、当前运行Memory(注意这个操作应该是Show Data)等窗口中显示出来。

全局变量

全局变量


5、局部变量窗口:
这个没啥可说的,跑进一个函数断点后看到这个函数内部所有局部变量的情况(一般的做法都是把需要观察的局部变量添加到手动变量窗口了,编号8窗口)

8、手动添加变量窗口:
除了变量以外,还可以添加函数,不过只貌似显示函数的所在地址,Ozone可以单独给每个需要观察的内容设定刷新率,Keil的话,我只会设置Peridodic Window Update,周期感觉1s?

手动变量窗口

手动变量窗口


6、Memory窗口:
Ozone比Keil下的常规操作会多支持Save 和 Load甚至Fill(个人感觉Load和Fill的作用不太大吧,毕竟更改这些地方,对程序影响太大了)。有个好评的地方在与,Ozone可以直接通过在寄存器或者变量窗口直接右键Show Data就可以看到变量甚至寄存器的Memory状态。对理解MCU来说,感觉还是很有用的。

Ozone Memory 窗口

Ozone Memory 窗口

Keil Memory 窗口

Keil Memory 窗口


7、寄存器窗口:
与其他IDE没有什么不同,不过比较奇怪的一点是,Ozone支持的STM32一些内核的寄存器(比如DPB、或者DWT等)ST官方手册都没有仔细些,ARM的一些Core的手册才给出的寄存器。反而在Keil下没有找到这些寄存器的选项。

寄存器窗口

寄存器窗口

9和10都是动态的曲线,上一个Gif的图大家可以直观感受一下

曲线动图

曲线动图

9、数据曲线窗口;
一个基于横轴时间、纵轴变量值(or 变量计算值)的曲线。可以设定变量的采样率和基于变量的计算表达式

数据曲线

数据曲线


Ozone的表达式支持类型

表达式描述

表达式描述



10、功耗曲线窗口:
功耗测试曲线和和数据曲线类似,如果使用Jlink或者Jtrace的5V-Supply给目标板供电,都可以被Ozone进行检测,并同步将消耗的电流显示出来。这样有个作用就是可以查看目标板在执行到哪里的时候功耗最大(或者与预期是否一致等)。不过希望Ozone能做一个功耗触发的功能,就是PC端测量到电流达到某个阈值后,立刻通过调试口让目标程序停下来,方便直接定位预期电流消耗的程序位置。

Trace接口

Trace接口

JTAG&SWD接口

JTAG&SWD接口

不太好的一点是,最大提供电流仅仅是300mA,比隔壁IAR 的I-jet Trace Arm的600mA要小不少。

I-Jet1

I-Jet1

I-Jet Current

I-Jet Current


11、OS支持窗口:
我OS用的很少,embOS更是第一次跑(Ozone官方例程里使用的是自家的OS)。Ozone的RTOS支持目前只有embOS、FreeRTOS还有一个ChibiOS。看介绍都是基于插件来实现的。ChibiOS我也是第一次听说,不过试用了下FreeRTOS,感觉功能比embOS的要少一些。不知道是使用FreeRTOS版本匹配问题,还是本身支持力度的问题。

embOS

embOS

FreeRTOS

FreeRTOS

12、控制台窗口:
Ozone项目文件是用脚本语言编写的C文件,各种操作,实际上也是基于命令实现的,通过控制台窗口可以很好的观察到每个执行的命令。同时基本所有设置也都可以通过命令的方式来进行下发,不知道这样对于从高层次往底层搞开发的人来说会更方便。控制台打“?”可以看到所有命令的介绍。

Console

Console



第二组:除了Terminal窗口外,其他的窗口都是Static静态的,也就是编译结束后,就已经固定不变了。

列表介绍2

列表介绍2

全局介绍2

全局介绍2


13、终端窗口:
终端打印我使用的很少,所以贴一张Ozone手册的介绍吧。基本上就是用了S家自带的RTT技术,或者SWO功能。其中写到一个Semihosting,没看懂有啥用……
t.png


14、调用窗口:
可以看到编译后工程之间的函数调用关系,和调用深度等相关内容,比较直观。
这是一个静态的程序图框,用于描述函数、子函数之间的相互引用关系以及所占用的堆栈量、代码总量、调用深度等
有点类似于keil中的htm(Obj过程文件中)文件的描述

Keil的htm文件

Keil的htm文件

调用窗口1

调用窗口1

调用窗口2

调用窗口2

12+96 = 108;108+24 =132;出现的+;是因为出现了fp-call,所以对应的depth里面会有FP,也会有“+”

调用窗口3

调用窗口3


15、查询窗口:就不贴图了,没啥可说的。Ctrl+F的记录

16、函数窗口:
功能没啥可说的, 就是被编译的所有函数的集合。再次表扬下Ozone的这个Filter Bar的这个功能,方便查找,Fliter Bar在很多窗口里面都有的

函数窗口1

函数窗口1

函数窗口2

函数窗口2


17、Memory占用窗口:
S家好像对这种条状图来表达RAM和Flash占用的方式有点执念。之前S家IDE工具ES中也会给出一个条状图

ES条状图

ES条状图

Memory Use条状图

Memory Use条状图

Memory Use 动图

Memory Use 动图


18、源文件窗口:
包含被编译的c文件、头文件。其中有程序大小,指令数,位置和状态(编译、包含、外部调用)。

源文件窗口

源文件窗口


19、Jlink/Trace控制面板窗口:
通过usb访问一个虚拟的服务器,可以对Jlink做对应的设置。和装上Jlink驱动后的Command的命令行方式类似吧

Jlink/Trace 面板

Jlink/Trace 面板


评分

参与人数 6金币 +210 收起 理由
hxDong + 10 很给力!
Keepgoing + 10 很给力!
jiaolingqi + 20 很给力!
金金子 + 20
caicaptain2 + 50
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2019-12-5 16:46:42 | 显示全部楼层
非常感谢楼主整理这么详细的介绍帖
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2019-12-5 16:55:57 | 显示全部楼层
Ozone今年推出了一个这种功能,有时间可以测评下

SEGGER的Ozone调试组件新增的快照功能,超级实用,解决随机性死机的利器
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94967
回复

使用道具 举报

22

主题

250

回帖

321

积分

高级会员

积分
321
发表于 2019-12-5 22:12:29 | 显示全部楼层
好文好文,感谢分享。敢问兄台通过那个渠道购买的?最近我也在想买一套。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2019-12-5 22:23:03 | 显示全部楼层
这速度,果然是不一样,楼主介绍很详细
QQ截图20191205222217.jpg
代码不规范,亲人两行泪!
回复

使用道具 举报

5

主题

179

回帖

194

积分

初级会员

积分
194
发表于 2019-12-5 23:11:58 | 显示全部楼层
手里的JLINk PRO突然不香了
回复

使用道具 举报

4

主题

51

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2019-12-5 23:30:54 | 显示全部楼层
wujialing3000 发表于 2019-12-5 22:12
好文好文,感谢分享。敢问兄台通过那个渠道购买的?最近我也在想买一套。

代理商从风标那里买的,价格和官网换算过来差不多
回复

使用道具 举报

4

主题

51

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2019-12-5 23:31:17 | 显示全部楼层
eric2013 发表于 2019-12-5 16:55
Ozone今年推出了一个这种功能,有时间可以测评下

SEGGER的Ozone调试组件新增的快照功能,超级实用,解决 ...

下个帖子就介绍
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2019-12-6 09:00:49 | 显示全部楼层
ndx1986 发表于 2019-12-5 23:31
下个帖子就介绍

回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2019-12-10 09:20:00 | 显示全部楼层
感谢大神分享!!可惜我们公司买的是J-link Ultra,使用不了Trace功能,听采购说是从北京麦克泰买的,国内好几个代理商么??
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2020-3-16 15:34:08 | 显示全部楼层
感谢大神分享!我现在遇到一个问题,就是创建工程时候我选择了elf文件,但是进去Ozone后,发现源文件都没有只能自己添加,这个要怎么解决呢?
回复

使用道具 举报

19

主题

150

回帖

207

积分

高级会员

积分
207
发表于 2020-6-17 12:18:38 | 显示全部楼层
学习学习。好文章。
回复

使用道具 举报

5

主题

100

回帖

115

积分

初级会员

积分
115
发表于 2020-9-3 12:08:15 | 显示全部楼层
全局变量能否在运行状态下刷新显示?怎么我非要停下来才能看
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2020-9-3 13:43:21 | 显示全部楼层
calvinxxw 发表于 2020-9-3 12:08
全局变量能否在运行状态下刷新显示?怎么我非要停下来才能看

可以运行时查看的。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-10-23 21:02:32 | 显示全部楼层
您好,我是初入门者,看到博主的分享非常开心,导师近期买了J-trace设备,但由于我太菜,所以在阅读部分Ozone手册后,仍然无法解决我的问题,所以特来请教。
我的问题是在建立项目后显示找不到源文件
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-10-23 21:04:08 | 显示全部楼层
fjt131543789 发表于 2020-3-16 15:34
感谢大神分享!我现在遇到一个问题,就是创建工程时候我选择了elf文件,但是进去Ozone后,发现源文件都没有 ...

跟我一样,自己添加可以,但是显示找不到的源文件,而且提示的路径根本不存在
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2020-10-24 08:53:32 | 显示全部楼层
金金子 发表于 2020-10-23 21:04
跟我一样,自己添加可以,但是显示找不到的源文件,而且提示的路径根本不存在

MDK和IAR的可执行文件使用Ozone调试的正确姿势,可以随时连接芯片做调试
http://www.armbbs.cn/forum.php?m ... 7452&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2020-10-25 13:37:45 | 显示全部楼层
翻墙可以看到一个详细视频的讲解,谢谢解答
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2020-10-26 09:20:37 | 显示全部楼层
好文啊, 种草了
回复

使用道具 举报

4

主题

51

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2020-10-27 08:51:13 | 显示全部楼层
金金子 发表于 2020-10-23 21:02
您好,我是初入门者,看到博主的分享非常开心,导师近期买了J-trace设备,但由于我太菜,所以在阅读部分Ozo ...

使用的是IAR么?注意不要有中文目录。我之前试过,keil和iar都可以正确识别到源文件。

不过使用keil编译的axf文件,Download直接调试,会有点问题:ozone导入axf反汇编过来执行的感觉有点不太对。我当时对比了下两者的反汇编代码,发现ozone反汇编的有点问题,导致ozone执行axf的时候经常会进入到HardFault。(可以参考硬汉给你流的链接,使用attact的方法进行ozone的调试)

使用IAR编译生成的elf导入时,Download直接调试时,没有发现在上面的问题(当然也不排除是代码不一样,我用两个工程做的实验)

建议如果使用ozone,还是建立一个ES的工程靠谱些,毕竟一家的东西,出问题说不过去了。

另:导师对你们真好
回复

使用道具 举报

18

主题

321

回帖

375

积分

高级会员

积分
375
发表于 2021-4-20 15:22:29 | 显示全部楼层
ndx1986 发表于 2020-10-27 08:51
使用的是IAR么?注意不要有中文目录。我之前试过,keil和iar都可以正确识别到源文件。

不过使用keil编 ...

大佬,我买可一个 J-LINK PRO 使用 Ozone ,看手册说的是支持代码覆盖率的查看,但是实际运行的时候代码覆盖率这里显示的都是0,是我的操作不对,还是 只有 J-Trace 才支持? 未命名1618903293.png
回复

使用道具 举报

4

主题

51

回帖

68

积分

初级会员

积分
68
 楼主| 发表于 2021-4-25 10:45:15 | 显示全部楼层
王海靖 发表于 2021-4-20 15:22
大佬,我买可一个 J-LINK PRO 使用 Ozone ,看手册说的是支持代码覆盖率的查看,但是实际运行的时候代码覆 ...

只有J-Trace才可以,Jlink不具备跟踪功能的,代码覆盖率属于Trace的范畴,看我另一篇帖子,这篇帖子里面的功能Jlink支持,但是那篇就是只有Trace才支持的了。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2021-6-1 08:45:51 | 显示全部楼层
您好,有个问题想请教您,希望能得到您的帮助。Ozone的Data Sampling采样频率最高只能到1K吗,为什么设置了更高的频率,比如10K,采集的速率还是1K
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2021-10-5 14:47:27 | 显示全部楼层
请问Ozone的下载算法是咋弄的
回复

使用道具 举报

2

主题

45

回帖

51

积分

初级会员

积分
51
发表于 2022-4-14 11:07:41 | 显示全部楼层
好棒的帖子,感谢分享,最近刚了解到Ozone
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-1-5 12:06:57 | 显示全部楼层
image.png 大佬我想询问如何进行变量绘图查看,我下载的是最新的v3.28b版本,但是界面只能这样
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-10-2 13:50:49 | 显示全部楼层
V5是什么意思呀,什么情况才可以看到这个值
微信图片_20231002134951.png
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-3-20 15:02:41 | 显示全部楼层
Cappi 发表于 2023-10-2 13:50
V5是什么意思呀,什么情况才可以看到这个值

说的是安富莱V5开发板吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 22:43 , Processed in 0.284174 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表