女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

我快閉嘴 ? 來(lái)源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2022-09-06 11:26 ? 次閱讀

Ozone是用于J-link和J-Trace的多平臺(tái)調(diào)試,分析工具。獨(dú)立的圖形化界面,可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源代碼調(diào)試和匯編指令調(diào)試。可直接使用J-Link和J-Trace內(nèi)置功能,如無(wú)限flash斷點(diǎn),flash下載,指令跟蹤等。在Cortex-M架構(gòu)上,Ozone可以幫助用戶快速發(fā)現(xiàn)和分析導(dǎo)致CPU故障的軟件錯(cuò)誤。本文將介紹如何使用Ozone的調(diào)試功能,深入了解這些類型的錯(cuò)誤。

分析故障工作流程

我們首先在一個(gè)示例的基礎(chǔ)上演示Ozone 的分析故障工作流程。示例應(yīng)用程序可以生成不同類型的 Cortex-M 故障,示例可以在此處(https://wiki.segger.com/File:CortexM_FaultTest.zip)下載。在下圖中,示例應(yīng)用程序已下載到SEGGER Cortex-M Trace開(kāi)發(fā)板板。使用的仿真器是 J-Trace PRO V2。程序已運(yùn)行至_NoThumbFunc()中,當(dāng)前PC位于跳轉(zhuǎn)地址0的分支上。由于地址 0 處為一條 Thumb 指令,因此恢復(fù)程序執(zhí)行將導(dǎo)致 Cortex-M CPU 故障。我們繼續(xù)執(zhí)行程序,看看 Ozone 如何處理故障。

71a0b520-2d92-11ed-ba43-dac502259ad0.png

一、目標(biāo)異常窗口

菜單欄點(diǎn)擊 GO 后,程序執(zhí)行立即中斷,并彈出 Ozone 的目標(biāo)異常對(duì)話框:

71b53428-2d92-11ed-ba43-dac502259ad0.png

目標(biāo)異常窗口顯示 CPU 故障描述及其系統(tǒng)寄存器的內(nèi)容。在此示例中,SHCSR 寄存器 USGFAULTACT 指示發(fā)生了Cortex-M UsageFault 異常。UFSR寄存器提供已發(fā)生的UsageFault 異常; INVSTATE被置位,表示在無(wú)效的 CPU 狀態(tài)下執(zhí)行指令。USGFAULTENA 表示已啟用 UsageFault 處理程序,如果沒(méi)有使能改位,異常將升級(jí)為HardFault。異常寄存器上下文的解釋特定于體系結(jié)構(gòu)。因此,Ozone在異常描述中盡可能多的顯示處理過(guò)的信息。當(dāng)程序執(zhí)行暫停且目標(biāo)處于異常狀態(tài)時(shí),都會(huì)顯示目標(biāo)異常窗口。

二、向量捕獲

71c53b34-2d92-11ed-ba43-dac502259ad0.png

開(kāi)始調(diào)試時(shí),Ozone 會(huì)啟用 Cortex-M 故障向量捕獲。這會(huì)導(dǎo)致程序執(zhí)行在進(jìn)入故障處理程序時(shí)立即中止。Ozone 將顯示目標(biāo)異常窗口。如上圖所示,可以使用 Ozone 的 Break & Tracepoints 窗口設(shè)置或清除單個(gè)向量捕獲。Ozone還提供命令Break.SetVectorCatch以編程方式編輯目標(biāo)的矢量捕獲狀態(tài)。例如,此命令可用于在調(diào)試啟動(dòng)時(shí)修改 Ozone 的默認(rèn)向量捕獲初始化行為。該命令在項(xiàng)目腳本函數(shù)OnProjectLoad中使用。

三、調(diào)試窗口

現(xiàn)在我們使用Ozone的調(diào)試窗口來(lái)進(jìn)一步了解故障。

71cf3044-2d92-11ed-ba43-dac502259ad0.png

Call Stack窗口顯示目標(biāo)處于UsageFault異常狀態(tài)。該窗口顯示故障源自函數(shù)_NoThumbFunc。我們?cè)贑all Stack窗口中選擇_NoThumbFunc。在Call Stack窗口中選擇調(diào)用幀時(shí),Ozone 的調(diào)用幀感知調(diào)試窗口會(huì)將輸出切換到所選幀的執(zhí)行上下文(請(qǐng)參閱上圖)。Local Data窗口指示在函數(shù)_NoThumbFunc中執(zhí)行了地址 0 分支。這導(dǎo)致 CPU 在 ARM 狀態(tài)下執(zhí)行 Thumb 指令。查看Ozone的寄存器窗口,寄存器UFSR確認(rèn)CPU已發(fā)出INVSTATE UsageFault。

使用跟蹤功能分析故障

在不確定的故障情況下,Cortex-M 內(nèi)核無(wú)法提供故障指令的準(zhǔn)確 PC,可以使用 Ozone 的跟蹤窗口來(lái)快速識(shí)別故障指令。

71a0b520-2d92-11ed-ba43-dac502259ad0.png

如上例所示,使用 Ozone 的 Backtrace Highlighting 功能可以輕松地將不精確的 BusFault 異常追溯到錯(cuò)誤的存儲(chǔ)指令。

總結(jié)

Cortex-M處理器異常包含:

(1)HardFault異常,是缺省異常,固定優(yōu)先級(jí)為-1,優(yōu)先級(jí)比除NMI之外的所有中斷和異常更高。

(2)MemManage異常,可通過(guò)使用內(nèi)存保護(hù)單元(MPU)引起內(nèi)存訪問(wèn)沖突異常。

(3)BusFault異常,在任一內(nèi)存訪問(wèn)錯(cuò)誤時(shí)觸發(fā),例如通過(guò)非法讀/寫(xiě),向量捕獲。

(4)UsageFault異常,在執(zhí)行錯(cuò)誤時(shí)觸發(fā)。UsageFault異常在向量表第6位,IRQ為-11,具有可配置優(yōu)先級(jí)。如果未啟用UsageFault,則會(huì)改為觸發(fā)HardFault。

在任一異常中,都會(huì)從向量表中調(diào)用異常處理程序,類似于中斷處理過(guò)程。Ozone檢測(cè)到目標(biāo)系統(tǒng)崩潰時(shí),會(huì)自動(dòng)分析目標(biāo)狀態(tài)并提供所必要的信息。異常窗口指示崩潰的原因,位置以及NVIC寄存器;Call Stack窗口可以從異常中展開(kāi),以便導(dǎo)航到錯(cuò)誤位置,即使跨過(guò)多個(gè)異常( The Call Stack Window can also unwind from an exception to enable easy navigation to the location of error, even across multiple exceptions.)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    68

    文章

    19805

    瀏覽量

    233533
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11033

    瀏覽量

    215995
  • Cortex-M
    +關(guān)注

    關(guān)注

    2

    文章

    230

    瀏覽量

    30224

原文標(biāo)題:如何使用Ozone分析Cortex-M故障?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    Ozone是一個(gè)跨平臺(tái)支持的代碼調(diào)試軟件,支持Segger J-link和J-Trace調(diào)試器。可以加載IAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源碼
    的頭像 發(fā)表于 09-30 11:14 ?1970次閱讀

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

    Ozone可以幫助用戶快速分析和查找導(dǎo)致CPU故障的軟件bug。本文解釋如何使用Ozone調(diào)試功能,深入了解Cortex-M架構(gòu)上的這些錯(cuò)誤。
    的頭像 發(fā)表于 11-29 11:14 ?1510次閱讀
    如何使用<b class='flag-5'>Ozone</b>分析Cortex-M異常

    使用Ozone調(diào)試基于nRF9160 Zephyr應(yīng)用程序

    Ozone是SEGGER免費(fèi)的嵌入式軟件調(diào)試器。它是一個(gè)強(qiáng)大的工具,可以讓你深入了解嵌入式系統(tǒng)中發(fā)生的事情。它在調(diào)試nRF9160 Zephyr應(yīng)用程序時(shí)特別有用。整理多個(gè)線程和多映像構(gòu)建可能很困難,但這就是你想要的工具。
    的頭像 發(fā)表于 02-25 17:07 ?756次閱讀
    使用<b class='flag-5'>Ozone</b><b class='flag-5'>調(diào)試</b>基于nRF9160 Zephyr應(yīng)用程序

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

    在上周的《基于Embedded Studio搭建MM32開(kāi)發(fā)環(huán)境》的章節(jié)中,我們使用了Ozone這款工具進(jìn)行調(diào)試,今天我們來(lái)向大家詳細(xì)地介紹如何使用Ozone調(diào)試MM32 MCU,以及
    發(fā)表于 03-26 09:27

    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)試器。
    發(fā)表于 08-11 17:10

    Ozone調(diào)試步驟

    ??首先說(shuō)一下,我之前的開(kāi)發(fā)流程是:VSCode 編輯代碼 + Keil 編譯及調(diào)試。Keil 的調(diào)試功能雖然很強(qiáng)大,但是多數(shù)功能需要配合 ARM 自家的 ULINKpro才可以用,例
    發(fā)表于 11-04 08:19

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

    源代碼調(diào)試和匯編指令調(diào)試。可直接使用J-Link和J-Trace內(nèi)置功能,如無(wú)限flash斷點(diǎn),flash下載,指令跟蹤等。在Cortex-M架構(gòu)上,Ozone可以幫助用戶快速發(fā)現(xiàn)和分
    發(fā)表于 09-23 11:26

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

    SEGGER Ozone是用于J-link和J-Trace的多平臺(tái)調(diào)試、分析工具。可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源代碼
    發(fā)表于 01-05 13:56

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

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

    華大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 調(diào)試

    ??首先說(shuō)一下,我之前的開(kāi)發(fā)流程是:VSCode 編輯代碼 + Keil 編譯及調(diào)試。Keil 的調(diào)試功能雖然很強(qiáng)大,但是多數(shù)功能需要配合 ARM 自家的 ULINKpro 才可以用
    發(fā)表于 10-29 09:36 ?9次下載
    華大 MCU 之六 SEGGER Embedded Studio 及 <b class='flag-5'>Ozone</b> 使用 Jlink <b class='flag-5'>調(diào)試</b>

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

    在上周的《基于Embedded Studio搭建MM32開(kāi)發(fā)環(huán)境》的章節(jié)中,我們使用了Ozone這款工具進(jìn)行調(diào)試,今天我們來(lái)向大家詳細(xì)地介紹如何使用Ozo...
    發(fā)表于 01-25 18:41 ?2次下載
    MM32F013x——巧用<b class='flag-5'>Ozone</b><b class='flag-5'>調(diào)試</b>MM32 MCU

    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><b class='flag-5'>調(diào)試</b>MM32

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

    SEGGER Ozone是用于J-link和J-Trace的多平臺(tái)調(diào)試、分析工具。可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源代碼調(diào)試和匯編指令
    的頭像 發(fā)表于 12-16 11:20 ?1423次閱讀

    Ozone的3.30版本——J-Link調(diào)試器發(fā)布

    SEGGER宣布最新的Ozone的3.30版本——J-Link調(diào)試器發(fā)布。此更新帶來(lái)了許多新功能和改進(jìn),將增強(qiáng)您的調(diào)試體驗(yàn)。
    的頭像 發(fā)表于 06-13 11:37 ?1503次閱讀

    如何使用Ozone的快照功能

    Ozone是一個(gè)跨平臺(tái)支持的代碼調(diào)試軟件,支持J-link和J-Trace調(diào)試器。可以加載SES、Keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源碼
    的頭像 發(fā)表于 11-05 17:38 ?972次閱讀
    如何使用<b class='flag-5'>Ozone</b>的快照<b class='flag-5'>功能</b>