专栏中心

EEPW首页 > 专栏 > 如何实现Ozone项目可移植?

如何实现Ozone项目可移植?

发布人:13261589816 时间:2023-01-05 来源:工程师 发布文章

SEGGER Ozone是用于J-link和J-Trace的多平台调试、分析工具。可加载IAR,Keil,Gcc,Clang/LLVM等工具链生成的Elf/Dwarf可执行文件,进行C/C++源代码调试和汇编指令调试。

Ozone调试器加载elf文件时,会自动查找elf文件中引用的源文件。但大多数编译器会把源文件的路径设置成绝对路径,如果把项目移动到其他文件夹或是另一台计算机再打开,调试时将无法找到源文件。本文将解析如何实现Ozone项目(.jdebug)可移植。

1、解决方式

在Ozone中,使用项目向导新建项目时(Ozone调试器使用攻略),如果导入的elf文件和对应的源文件位于同一文件夹中,Ozone就会自动将该项目设置为可移植的。

如果不满足这个条件,elf文件位置将被默认设置为绝对路径,项目位置移动后,将无法立即使用Ozone对(.jdebug)项目进行调试,提示无法找到elf文件。可以通过编辑(.jdebug)文件中的Project.AddPathSubstitute()和File.Open()语句来解决这个问题。

(1).  在File.Open()中设置了elf文件的路径,该函数支持相对路径。修改这条语句为项目的相对路径,以保证项目的可移植性。

(2).  在Project.AddPathSubstitute()中全部或部分替换elf文件中引用源文件的绝对路径。你可以在View->Source Files下验证路径替换是否有效。如果没有找到源文件,它旁边会有一个警告小图标。

2、验证

Ozone自动生成的项目可移植性可能无法满足实际需求。SEGGER官网示例工程下载链接:

https://wiki.segger.com/images/6/64/Ozone_Portable_Project_Example.zip

解压后,使用Ozone调试器打开Ozone文件夹中的项目文件Ozone_Project.jdebug, 提示无法找到 elf 文件。

图片

要解决此问题,先关闭Ozone并使用文本编辑器打开Ozone_Project.jdebug文件,查找“File.Open”,你会看到这里有一条绝对路径,它是创建项目原始主机的elf文件位置。

图片

将这条绝对路径修改为相对路径File.Open(“../Output/Debug/Exe/ Ozone_Portable_Project_Example.elf”); 保存文件并使用Ozone打开。

图片

Ozone提示找不到main.c文件,这是因为语句“Project.AddPathSubstitute”有问题。

图片

修改为Project.AddPathSubstitute ("C:/ Users /Nino /Documents /SEGGER Embedded Studio for ARM Projects/Ozone_Portable_Project_Example","$(ProjectDir)/.."); 保存项目文件并再次使用Ozone打开。

图片

可以看到在Ozone中正确显示源文件。

通过修改*.jdebug的方式,可以非常容易的实现项目可移植。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: segger

相关推荐

Segger 为系统内程序员增加了可编程系统测试

北京麦克泰代理的国际知名仿真器一览

资源下载 2013-04-23

UltraSoC为嵌入式调试和分析环境添加SEGGER的J-Link调试探针

SEGGER和Geehy合作,全面支持APM32系列微控制器

兆易创新与SEGGER联合提供免费商用的emWin图形界面解决方案

更多 培训课堂
更多 焦点
更多 视频

技术专区