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

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

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

如何調(diào)用Ozone支持的腳本函數(shù)來實(shí)現(xiàn)自動化的調(diào)試工作

我快閉嘴 ? 來源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2022-09-30 11:14 ? 次閱讀

Ozone是一個跨平臺支持的代碼調(diào)試軟件,支持Segger J-link和J-Trace調(diào)試器??梢约虞dIAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源碼調(diào)試和匯編指令調(diào)試。

Ozone項(xiàng)目工程文件的結(jié)構(gòu)是一種類似于C語言的腳本語言,允許用戶通過編輯該腳本文件來配置Ozone軟件的用戶界面和自動化調(diào)試工作流程。本文將介紹如何調(diào)用Ozone支持的腳本函數(shù)來實(shí)現(xiàn)自動化的調(diào)試工作。

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

可以通過Ozone軟件GUI所執(zhí)行的大多數(shù)操作都有一個對應(yīng)的腳本函數(shù),在工程文件中調(diào)用該函數(shù)即可實(shí)現(xiàn)同樣的效果。例如設(shè)置斷點(diǎn),觀察某個變量或者寄存器的值,將某些分析視圖的結(jié)果數(shù)據(jù)導(dǎo)出等等。以及自定義芯片程序在Debug開始之前,Debug暫停和芯片復(fù)位之后需要執(zhí)行的特定操作等等。這些都可以通過編輯Ozone工程文件來實(shí)現(xiàn)。

Ozone支持的腳本函數(shù)的功能和作用的詳細(xì)介紹在Ozone用戶手冊中有詳細(xì)的介紹,大多數(shù)函數(shù)從其命名中即可清晰直觀的了解到所對應(yīng)執(zhí)行的操作。下面將簡單介紹一些常用腳本函數(shù)的例子。

例如通過調(diào)用函數(shù)來設(shè)置斷點(diǎn),腳本函數(shù)支持各類型斷點(diǎn)的操作,包括斷點(diǎn)設(shè)置,使能,刪除等操作。支持在特定代碼位置設(shè)置代碼斷點(diǎn)或者數(shù)據(jù)斷點(diǎn),只需要在腳本文件調(diào)用對應(yīng)的函數(shù)即可。

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

可以通過函數(shù)指定在哪個C文件的什么代碼行位置設(shè)置斷點(diǎn),例如在OS_TraceDemo.c文件的第190行位置設(shè)置代碼斷點(diǎn)。

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

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

當(dāng)設(shè)置的斷點(diǎn)在自動化調(diào)試過程中被觸發(fā)的時候,可以通過Break.SetCommand函數(shù)指定該斷點(diǎn)被觸發(fā)時需要執(zhí)行的操作。

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

可以根據(jù)每個斷點(diǎn)位置設(shè)置對應(yīng)的操作,例如在OS_TraceDemo.c第190行位置斷點(diǎn)被觸發(fā)時調(diào)用腳本文件中的OnBPHit2()函數(shù),在該函數(shù)中將指令跟蹤調(diào)試Trace到的數(shù)據(jù)分析結(jié)果通過Profile系列函數(shù)進(jìn)行導(dǎo)出,支持導(dǎo)出為txt格式或者csv格式。

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

在對應(yīng)的文件路徑下即可找到所導(dǎo)出的指令跟蹤分析結(jié)果,代碼覆蓋率分析的結(jié)果如下。

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

在腳本自動化執(zhí)行過程中可以將相應(yīng)的log或者錯誤信息輸出到Ozone的控制臺窗口,通過調(diào)用Util系列函數(shù)來實(shí)現(xiàn)。

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

如果不想通過Ozone的控制臺窗口查看輸出,也可以調(diào)用函數(shù)將log信息保存到指定的log文件中。

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

在腳本的log文件中可以看到自動化調(diào)試的執(zhí)行記錄,包括斷點(diǎn)的觸發(fā)記錄,以及觸發(fā)后執(zhí)行的對應(yīng)操作等。如調(diào)用了Watch.Add函數(shù)在watch觀察窗口觀察某個變量的數(shù)值,調(diào)用函數(shù)后,Ozone的watch窗口中將會添加對應(yīng)的變量。

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

此處通過函數(shù)添加觀察的變量名稱是“on”,在設(shè)置的斷點(diǎn)2被觸發(fā)時該變量的值為1。

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

本文簡單介紹了下Ozone支持的腳本函數(shù),以及調(diào)用這些函數(shù)所能夠?qū)崿F(xiàn)的自動化調(diào)試功能,包括在指定位置設(shè)置各類型斷點(diǎn),指定斷點(diǎn)被觸發(fā)后對應(yīng)執(zhí)行的操作,自動導(dǎo)出Trace跟蹤的數(shù)據(jù)結(jié)果等等。Ozone支持的眾多腳本函數(shù)和命令允許用戶在需要執(zhí)行大規(guī)模調(diào)試工作的時候進(jìn)行自動化調(diào)試,能夠減輕客戶測試工程師的工作。Ozone支持的完整腳本函數(shù)的詳細(xì)介紹請參考Ozone的用戶手冊,本文中介紹使用的完整工程示例可以通過如下鏈接進(jìn)行下載,感興趣的用戶也可以動手進(jìn)行嘗試。

審核編輯:湯梓紅

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

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136863
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    305

    瀏覽量

    23742
  • 腳本函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1813

原文標(biāo)題:如何設(shè)置SEGGER Ozone調(diào)試器執(zhí)行自動化調(diào)試?

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

收藏 人收藏

    評論

    相關(guān)推薦

    10個殺手級的Python自動化腳本

    今天浩道跟大家分享10個日常工作中用到的python自動化腳本。讓你感受一番python簡單強(qiáng)大之處!
    發(fā)表于 11-28 11:07 ?685次閱讀

    深圳招聘-高級自動化試工程師(熟練掌握LabVIEW、TestSta...

    自動化試工程師崗位職責(zé): 1. 負(fù)責(zé)板卡或組件自動化試工裝方案的設(shè)計(jì); 2. 根據(jù)板卡或組件自動化
    發(fā)表于 11-15 09:04

    ccs和quartus實(shí)現(xiàn)自動化調(diào)用

    由于要批量的進(jìn)行DSP和CPLD的燒錄,并且要對燒錄記錄進(jìn)行管控,所以最近想開發(fā)一個程序實(shí)現(xiàn)CCS和quartus這兩個軟件配置及燒錄部分的自動化調(diào)用,但是現(xiàn)在沒有思路,有一些C語言的基礎(chǔ)想拿C++來開發(fā),求大神指導(dǎo)一下思路,最
    發(fā)表于 12-14 02:31

    【上海】獵頭推薦職位-自動化試工程師(java/python)

    獵頭職位:自動化試工程師(java/python)工作職責(zé):1.負(fù)責(zé)測試報(bào)告輸出、項(xiàng)目風(fēng)險評估,對測試結(jié)果負(fù)責(zé);2.負(fù)責(zé)對產(chǎn)品進(jìn)行接口測試/自動化測試/性能測試/安全測試等
    發(fā)表于 06-28 17:37

    【北京】誠聘自動化試工程師

    獵頭招聘:自動化試工程師(薪資:25-40 K/月)工作職責(zé):1、負(fù)責(zé)硬件相關(guān)測試效率的提升;2、負(fù)責(zé)老化測試,長時間可靠性驗(yàn)證及其自動化試工
    發(fā)表于 12-05 16:15

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

    跟蹤)- 可編寫腳本的項(xiàng)目文件可自動設(shè)置所有內(nèi)容- 新項(xiàng)目向?qū)Э珊喕马?xiàng)目的基本配置Ozone支持的編譯器:Embedded Studio,GCC,Clang,MDK,IAR。02
    發(fā)表于 03-26 09:27

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

    源碼調(diào)試和匯編指令調(diào)試。通過J-Link實(shí)現(xiàn)高速下載和無限Flash斷點(diǎn)功能(需J-Link型號支持)。本文將介紹如何使用Ozone
    發(fā)表于 08-11 17:10

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

    調(diào)試和匯編指令調(diào)試。Ozone調(diào)試器加載elf文件時,會自動查找elf文件中引用的源文件。但大多數(shù)編譯器會把源文件的路徑設(shè)置成絕對路徑,如果
    發(fā)表于 01-05 13:56

    一款開源串口調(diào)試助手,支持指令調(diào)試、協(xié)議解析、自定義上位機(jī)面板、自動化測試、以及自動響應(yīng)

    由于一直沒有找到適合自己的調(diào)試工具, 所以自己寫了一個 ~~~指令管理支持多種參數(shù)構(gòu)建方式,省去大小端以及進(jìn)制轉(zhuǎn)換的步驟支持無限制保存通訊數(shù)據(jù),可通過文件夾的方式進(jìn)行分類管理支持快捷
    發(fā)表于 02-07 11:23

    自動化測試腳本開發(fā)技巧

    開發(fā)自動化測試腳本的技巧和心得軟件測試 增量式調(diào)試腳本 錄制測試腳本,和其他的軟件開發(fā)成果一樣,會變得非常大。為了可以成功的回放,需要
    發(fā)表于 03-26 16:24 ?53次下載

    分享10個實(shí)用的Python自動化腳本

    重復(fù)性任務(wù)總是耗時且無聊,想一想你想要一張一張地裁剪 100 張照片或 Fetch API、糾正拼寫和語法等工作,所有這些任務(wù)都很耗時,為什么不自動化它們呢?在今天的文章中,我將與你分享 10 個 Python 自動化
    的頭像 發(fā)表于 01-21 15:58 ?1340次閱讀

    分享Perl和Python腳本輕量實(shí)用的調(diào)試工

    Perl和Python作為目前芯片開發(fā)流程中最為流行的腳本語言,本文將分別介紹它們輕量且實(shí)用的調(diào)試工具(Debugger),讓你在調(diào)試腳本的時候不再抓瞎。
    的頭像 發(fā)表于 01-21 17:25 ?1957次閱讀
    分享Perl和Python<b class='flag-5'>腳本</b>輕量實(shí)用的<b class='flag-5'>調(diào)試工</b>具

    keil自動化編譯腳本

    這是一個 keil 的自動化編譯腳本,可被其他腳本或程序調(diào)用,接收參數(shù)并按參數(shù)編譯 keil 工程,而不必打開 keil 軟件,實(shí)現(xiàn)程序上的
    的頭像 發(fā)表于 10-16 17:04 ?1903次閱讀
    keil<b class='flag-5'>自動化</b>編譯<b class='flag-5'>腳本</b>

    腳本調(diào)試工具有哪些?腳本調(diào)試工具怎么用?

    腳本調(diào)試是軟件開發(fā)過程中非常重要的一環(huán),它能幫助開發(fā)者快速定位并解決代碼中的錯誤。大多數(shù)編程語言都提供了各種各樣的腳本調(diào)試工具,本文將介紹一些常見的
    的頭像 發(fā)表于 12-01 14:40 ?883次閱讀

    linux用gdb調(diào)試遇到函數(shù)調(diào)用怎么辦?

    。 要順利進(jìn)行函數(shù)調(diào)用調(diào)試,首先需要準(zhǔn)備好代碼和符號表。在編譯代碼時,需要加上 `-g` 參數(shù)來生成調(diào)試信息。這樣編譯器會在可執(zhí)行文件中嵌
    的頭像 發(fā)表于 01-31 10:33 ?719次閱讀