0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)Ozone項(xiàng)目可移植?

麥克泰技術(shù) ? 來(lái)源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2022-12-16 11:20 ? 次閱讀

SEGGER Ozone是用于J-link和J-Trace的多平臺(tái)調(diào)試、分析工具??杉虞dIAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源代碼調(diào)試和匯編指令調(diào)試。

Ozone調(diào)試器加載elf文件時(shí),會(huì)自動(dòng)查找elf文件中引用的源文件。但大多數(shù)編譯器會(huì)把源文件的路徑設(shè)置成絕對(duì)路徑,如果把項(xiàng)目移動(dòng)到其他文件夾或是另一臺(tái)計(jì)算機(jī)再打開(kāi),調(diào)試時(shí)將無(wú)法找到源文件。本文將解析如何實(shí)現(xiàn)Ozone項(xiàng)目(.jdebug)可移植。

1解決方式

在Ozone中,使用項(xiàng)目向?qū)陆?xiàng)目時(shí)(Ozone調(diào)試器使用攻略),如果導(dǎo)入的elf文件和對(duì)應(yīng)的源文件位于同一文件夾中,Ozone就會(huì)自動(dòng)將該項(xiàng)目設(shè)置為可移植的。

如果不滿足這個(gè)條件,elf文件位置將被默認(rèn)設(shè)置為絕對(duì)路徑,項(xiàng)目位置移動(dòng)后,將無(wú)法立即使用Ozone對(duì)(.jdebug)項(xiàng)目進(jìn)行調(diào)試,提示無(wú)法找到elf文件。可以通過(guò)編輯(.jdebug)文件中的Project.AddPathSubstitute()和File.Open()語(yǔ)句來(lái)解決這個(gè)問(wèn)題。

(1). 在File.Open()中設(shè)置了elf文件的路徑,該函數(shù)支持相對(duì)路徑。修改這條語(yǔ)句為項(xiàng)目的相對(duì)路徑,以保證項(xiàng)目的可移植性。

(2). 在Project.AddPathSubstitute()中全部或部分替換elf文件中引用源文件的絕對(duì)路徑。你可以在View->Source Files下驗(yàn)證路徑替換是否有效。如果沒(méi)有找到源文件,它旁邊會(huì)有一個(gè)警告小圖標(biāo)。

1驗(yàn)證

Ozone自動(dòng)生成的項(xiàng)目可移植性可能無(wú)法滿足實(shí)際需求。SEGGER官網(wǎng)示例工程下載鏈接

解壓后,使用Ozone調(diào)試器打開(kāi)Ozone文件夾中的項(xiàng)目文件Ozone_Project.jdebug, 提示無(wú)法找到 elf 文件。

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

要解決此問(wèn)題,先關(guān)閉Ozone并使用文本編輯器打開(kāi)Ozone_Project.jdebug文件,查找“File.Open”,你會(huì)看到這里有一條絕對(duì)路徑,它是創(chuàng)建項(xiàng)目原始主機(jī)的elf文件位置。

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

將這條絕對(duì)路徑修改為相對(duì)路徑File.Open(“../Output/Debug/Exe/ Ozone_Portable_Project_Example.elf”); 保存文件并使用Ozone打開(kāi)。

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

Ozone提示找不到main.c文件,這是因?yàn)檎Z(yǔ)句“Project.AddPathSubstitute”有問(wèn)題。

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

修改為Project.AddPathSubstitute ("C:/ Users /Nino /Documents /SEGGER Embedded Studio for ARM Projects/Ozone_Portable_Project_Example","$(ProjectDir)/.."); 保存項(xiàng)目文件并再次使用Ozone打開(kāi)。

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

可以看到在Ozone中正確顯示源文件。

通過(guò)修改*.jdebug的方式,可以非常容易的實(shí)現(xiàn)項(xiàng)目可移植。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    28012
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2085

    瀏覽量

    73301
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2942

    瀏覽量

    66444
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48895

原文標(biāo)題:如何實(shí)現(xiàn)Ozone項(xiàng)目可移植?

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是C語(yǔ)言的移植

    的命名規(guī)范、系統(tǒng)調(diào)用等自身原因,在API層面上實(shí)現(xiàn)移植也是不大可能的。那怎么才能實(shí)現(xiàn)移植呢?
    發(fā)表于 03-22 13:07

    靈動(dòng)微課堂 (第161講) | MM32F013x——巧用Ozone調(diào)試MM32 MCU

    跟蹤)- 可編寫腳本的項(xiàng)目文件自動(dòng)設(shè)置所有內(nèi)容- 新項(xiàng)目向?qū)Э珊?jiǎn)化新項(xiàng)目的基本配置Ozone已支持的編譯器:Embedded Studio
    發(fā)表于 03-26 09:27

    【實(shí)用資料】FreeModBus移植源碼+學(xué)習(xí)筆記,快速實(shí)現(xiàn)你的項(xiàng)目功能~~

    本帖最后由 張飛電子學(xué)院蔡琰 于 2021-4-2 13:18 編輯 如果你的項(xiàng)目剛好需要ModBus,建議直接移植標(biāo)準(zhǔn)協(xié)議源碼,代碼健壯,快速實(shí)現(xiàn)你的
    發(fā)表于 04-02 11:01

    SEGGER Ozone調(diào)試器使用攻略!

    源碼調(diào)試和匯編指令調(diào)試。通過(guò)J-Link實(shí)現(xiàn)高速下載和無(wú)限Flash斷點(diǎn)功能(需J-Link型號(hào)支持)。本文將介紹如何使用Ozone調(diào)試器。安裝軟件并創(chuàng)建調(diào)試工程(1)首先需要去Segger官網(wǎng)下載并
    發(fā)表于 08-11 17:10

    Ozone的調(diào)試步驟

    Performance Analyzer、Event Viewer 等。而我手頭只有Jlink 和 ULINK 非 pro 版的…??在最近的項(xiàng)目中,隨著代碼量的不斷增加,Keil 的編譯速度瓶頸越來(lái)越明顯
    發(fā)表于 11-04 08:19

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

    命令可用于在調(diào)試啟動(dòng)時(shí)修改 Ozone 的默認(rèn)向量捕獲初始化行為。該命令在項(xiàng)目腳本函數(shù)OnProjectLoad中使用。三、調(diào)試窗口現(xiàn)在我們使用Ozone的調(diào)試窗口來(lái)進(jìn)一步了解故障。Call
    發(fā)表于 09-23 11:26

    如何實(shí)現(xiàn)Ozone項(xiàng)目移植?

    找到源文件。本文將解析如何實(shí)現(xiàn)Ozone項(xiàng)目(.jdebug)移植。1、解決方式在Ozone
    發(fā)表于 01-05 13:56

    如何使用ozone調(diào)試雙核應(yīng)用?

    在第二個(gè)core的ozone中, 點(diǎn)擊開(kāi)始調(diào)試, 就不正常了
    發(fā)表于 05-26 08:11

    什么是移植?C語(yǔ)言是如何做到移植的?

    什么是移植?如何才能移植?C語(yǔ)言是如何做到移植的?對(duì)于初學(xué)者,
    的頭像 發(fā)表于 03-29 14:41 ?7047次閱讀

    MM32F013x——巧用Ozone調(diào)試MM32

    本文將向大家詳細(xì)地介紹如何使用Ozone調(diào)試MM32 MCU,以及Ozone能給大家?guī)?lái)哪些便利性,體驗(yàn)這款工具的強(qiáng)大之處。
    發(fā)表于 02-08 16:23 ?0次下載
    MM32F013x——巧用<b class='flag-5'>Ozone</b>調(diào)試MM32

    基于openharmony適配移植搜索微調(diào)器

    項(xiàng)目介紹 項(xiàng)目名稱:SearchableSpinner 所屬系列:openharmony的第三方組件適配移植 功能:實(shí)現(xiàn)搜索微調(diào)器
    發(fā)表于 03-28 10:15 ?1次下載

    基于openharmony適配移植實(shí)現(xiàn)的氣泡視圖教程

    項(xiàng)目介紹 項(xiàng)目名稱:MessageBubbleView 所屬系列:openharmony的第三方組件適配移植 功能:實(shí)現(xiàn)MessageBubbleView仿QQ未讀消息氣泡,
    發(fā)表于 04-08 09:14 ?1次下載

    基于openHarmony適配移植的即時(shí)聊天功能實(shí)現(xiàn)

    項(xiàng)目介紹 項(xiàng)目名稱:NettyChat 所屬系列:openHarmony的第三方組件適配移植 功能:實(shí)現(xiàn)了即時(shí)聊天功能 項(xiàng)目
    發(fā)表于 04-12 09:29 ?5次下載

    如何使用Ozone的調(diào)試功能

    Ozone是用于J-link和J-Trace的多平臺(tái)調(diào)試,分析工具。獨(dú)立的圖形化界面,可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++
    的頭像 發(fā)表于 09-06 11:26 ?4925次閱讀

    SEGGER的Ozone現(xiàn)支持用于M1/M2(ARM內(nèi)核)上的macOS

    SEGGER的市場(chǎng)經(jīng)理Dirk Akemann說(shuō):“基于客戶的大量要求和Apple 處理器產(chǎn)品的流行,我們決定推出一款新的Ozone。”“蘋果架構(gòu)系統(tǒng)對(duì)我們的J-Link調(diào)試仿真器和開(kāi)發(fā)工具Embedded Studio及SystemView的需求一直很高,所以我們決定將其支持?jǐn)U展到
    的頭像 發(fā)表于 04-07 11:10 ?809次閱讀