1 如何实现Ozone项目可移植?-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

如何实现Ozone项目可移植?

麦克泰技术 来源:麦克泰技术 作者:麦克泰技术 2022-12-16 11:20 次阅读

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下验证路径替换是否有效。如果没有找到源文件,它旁边会有一个警告小图标。

1验证

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

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

1c7e6fbc-7cf0-11ed-8abf-dac502259ad0.jpg

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

1ca9edae-7cf0-11ed-8abf-dac502259ad0.png

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

1cc04a7c-7cf0-11ed-8abf-dac502259ad0.jpg

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

1ce53a3a-7cf0-11ed-8abf-dac502259ad0.png

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

1cc04a7c-7cf0-11ed-8abf-dac502259ad0.jpg

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

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

审核编辑:汤梓红

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

    关注

    1

    文章

    379

    浏览量

    28124
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73617
  • 源代码
    +关注

    关注

    96

    文章

    2945

    浏览量

    66729
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49107

原文标题:如何实现Ozone项目可移植?

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

收藏 人收藏

    评论

    相关推荐

    如何使用Ozone分析Cortex-M异常

    Ozone可以帮助用户快速分析和查找导致CPU故障的软件bug。本文解释如何使用Ozone的调试功能,深入了解Cortex-M架构上的这些错误。
    的头像 发表于 11-29 11:14 674次阅读
    如何使用<b class='flag-5'>Ozone</b>分析Cortex-M异常

    什么是C语言的移植

    的命名规范、系统调用等自身原因,在API层面上实现移植也是不大可能的。那怎么才能实现移植呢?
    发表于 03-22 13:07

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

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

    【实用资料】FreeModBus移植源码+学习笔记,快速实现你的项目功能~~

    本帖最后由 张飞电子学院蔡琰 于 2021-4-2 13:18 编辑 如果你的项目刚好需要ModBus,建议直接移植标准协议源码,代码健壮,快速实现你的
    发表于 04-02 11:01

    SEGGER Ozone调试器使用攻略!

    源码调试和汇编指令调试。通过J-Link实现高速下载和无限Flash断点功能(需J-Link型号支持)。本文将介绍如何使用Ozone调试器。安装软件并创建调试工程(1)首先需要去Segger官网下载并
    发表于 08-11 17:10

    Ozone的调试步骤

    Performance Analyzer、Event Viewer 等。而我手头只有Jlink 和 ULINK 非 pro 版的…  在最近的项目中,随着代码量的不断增加,Keil 的编译速度瓶颈越来越明显
    发表于 11-04 08:19

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

    命令可用于在调试启动时修改 Ozone 的默认向量捕获初始化行为。该命令在项目脚本函数OnProjectLoad中使用。三、调试窗口现在我们使用Ozone的调试窗口来进一步了解故障。Call
    发表于 09-23 11:26

    如何实现Ozone项目移植

    找到源文件。本文将解析如何实现Ozone项目(.jdebug)移植。1、解决方式在Ozone
    发表于 01-05 13:56

    如何使用ozone调试双核应用?

    在第二个core的ozone中, 点击开始调试, 就不正常了
    发表于 05-26 08:11

    什么是移植?C语言是如何做到移植的?

    什么是移植?如何才能移植?C语言是如何做到移植的?对于初学者,
    的头像 发表于 03-29 14:41 7163次阅读

    MM32F013x——巧用Ozone调试MM32

    本文将向大家详细地介绍如何使用Ozone调试MM32 MCU,以及Ozone能给大家带来哪些便利性,体验这款工具的强大之处。
    发表于 02-08 16:23 0次下载
    MM32F013x——巧用<b class='flag-5'>Ozone</b>调试MM32

    基于openharmony适配移植搜索微调器

    项目介绍 项目名称:SearchableSpinner 所属系列:openharmony的第三方组件适配移植 功能:实现搜索微调器
    发表于 03-28 10:15 1次下载

    基于openharmony适配移植实现的气泡视图教程

    项目介绍 项目名称:MessageBubbleView 所属系列:openharmony的第三方组件适配移植 功能:实现MessageBubbleView仿QQ未读消息气泡,
    发表于 04-08 09:14 1次下载

    基于openHarmony适配移植的即时聊天功能实现

    项目介绍 项目名称:NettyChat 所属系列:openHarmony的第三方组件适配移植 功能:实现了即时聊天功能 项目
    发表于 04-12 09:29 5次下载

    如何使用Ozone的调试功能

    Ozone是用于J-link和J-Trace的多平台调试,分析工具。独立的图形化界面,可加载IAR,Keil,Gcc,Clang/LLVM等工具链生成的Elf/Dwarf可执行文件,进行C/C++
    的头像 发表于 09-06 11:26 5481次阅读