在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Ozone的調試功能

我快閉嘴 ? 來源:麥克泰技術 ? 作者:麥克泰技術 ? 2022-09-06 11:26 ? 次閱讀

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

分析故障工作流程

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

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

一、目標異常窗口

菜單欄點擊 GO 后,程序執行立即中斷,并彈出 Ozone 的目標異常對話框:

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

目標異常窗口顯示 CPU 故障描述及其系統寄存器的內容。在此示例中,SHCSR 寄存器 USGFAULTACT 指示發生了Cortex-M UsageFault 異常。UFSR寄存器提供已發生的UsageFault 異常; INVSTATE被置位,表示在無效的 CPU 狀態下執行指令。USGFAULTENA 表示已啟用 UsageFault 處理程序,如果沒有使能改位,異常將升級為HardFault。異常寄存器上下文的解釋特定于體系結構。因此,Ozone在異常描述中盡可能多的顯示處理過的信息。當程序執行暫停且目標處于異常狀態時,都會顯示目標異常窗口。

二、向量捕獲

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

開始調試時,Ozone 會啟用 Cortex-M 故障向量捕獲。這會導致程序執行在進入故障處理程序時立即中止。Ozone 將顯示目標異常窗口。如上圖所示,可以使用 Ozone 的 Break & Tracepoints 窗口設置或清除單個向量捕獲。Ozone還提供命令Break.SetVectorCatch以編程方式編輯目標的矢量捕獲狀態。例如,此命令可用于在調試啟動時修改 Ozone 的默認向量捕獲初始化行為。該命令在項目腳本函數OnProjectLoad中使用。

三、調試窗口

現在我們使用Ozone的調試窗口來進一步了解故障。

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

Call Stack窗口顯示目標處于UsageFault異常狀態。該窗口顯示故障源自函數_NoThumbFunc。我們在Call Stack窗口中選擇_NoThumbFunc。在Call Stack窗口中選擇調用幀時,Ozone 的調用幀感知調試窗口會將輸出切換到所選幀的執行上下文(請參閱上圖)。Local Data窗口指示在函數_NoThumbFunc中執行了地址 0 分支。這導致 CPU 在 ARM 狀態下執行 Thumb 指令。查看Ozone的寄存器窗口,寄存器UFSR確認CPU已發出INVSTATE UsageFault。

使用跟蹤功能分析故障

在不確定的故障情況下,Cortex-M 內核無法提供故障指令的準確 PC,可以使用 Ozone 的跟蹤窗口來快速識別故障指令。

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

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

總結

Cortex-M處理器異常包含:

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

(2)MemManage異常,可通過使用內存保護單元(MPU)引起內存訪問沖突異常。

(3)BusFault異常,在任一內存訪問錯誤時觸發,例如通過非法讀/寫,向量捕獲。

(4)UsageFault異常,在執行錯誤時觸發。UsageFault異常在向量表第6位,IRQ為-11,具有可配置優先級。如果未啟用UsageFault,則會改為觸發HardFault。

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19661

    瀏覽量

    232490
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10995

    瀏覽量

    214855
  • Cortex-M
    +關注

    關注

    2

    文章

    229

    瀏覽量

    30089

原文標題:如何使用Ozone分析Cortex-M故障?

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何調用Ozone支持的腳本函數來實現自動化的調試工作

    Ozone是一個跨平臺支持的代碼調試軟件,支持Segger J-link和J-Trace調試器。可以加載IAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執行文件,進行C/C++源碼
    的頭像 發表于 09-30 11:14 ?1863次閱讀

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

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

    使用Ozone調試基于nRF9160 Zephyr應用程序

    Ozone是SEGGER免費的嵌入式軟件調試器。它是一個強大的工具,可以讓你深入了解嵌入式系統中發生的事情。它在調試nRF9160 Zephyr應用程序時特別有用。整理多個線程和多映像構建可能很困難,但這就是你想要的工具。
    的頭像 發表于 02-25 17:07 ?542次閱讀
    使用<b class='flag-5'>Ozone</b><b class='flag-5'>調試</b>基于nRF9160 Zephyr應用程序

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

    在上周的《基于Embedded Studio搭建MM32開發環境》的章節中,我們使用了Ozone這款工具進行調試,今天我們來向大家詳細地介紹如何使用Ozone調試MM32 MCU,以及
    發表于 03-26 09:27

    SEGGER Ozone調試器使用攻略!

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

    Ozone調試步驟

    ??首先說一下,我之前的開發流程是:VSCode 編輯代碼 + Keil 編譯及調試。Keil 的調試功能雖然很強大,但是多數功能需要配合 ARM 自家的 ULINKpro才可以用,例
    發表于 11-04 08:19

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

    源代碼調試和匯編指令調試。可直接使用J-Link和J-Trace內置功能,如無限flash斷點,flash下載,指令跟蹤等。在Cortex-M架構上,Ozone可以幫助用戶快速發現和分
    發表于 09-23 11:26

    如何實現Ozone項目可移植?

    SEGGER Ozone是用于J-link和J-Trace的多平臺調試、分析工具。可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執行文件,進行C/C++源代碼
    發表于 01-05 13:56

    如何使用ozone調試雙核應用?

    在第二個core的ozone中, 點擊開始調試, 就不正常了
    發表于 05-26 08:11

    華大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 調試

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

    MM32F013x——巧用Ozone調試MM32 MCU

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

    MM32F013x——巧用Ozone調試MM32

    本文將向大家詳細地介紹如何使用Ozone調試MM32 MCU,以及Ozone能給大家帶來哪些便利性,體驗這款工具的強大之處。
    發表于 02-08 16:23 ?0次下載
    MM32F013x——巧用<b class='flag-5'>Ozone</b><b class='flag-5'>調試</b>MM32

    如何實現Ozone項目可移植?

    SEGGER Ozone是用于J-link和J-Trace的多平臺調試、分析工具。可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執行文件,進行C/C++源代碼調試和匯編指令
    的頭像 發表于 12-16 11:20 ?1292次閱讀

    Ozone的3.30版本——J-Link調試器發布

    SEGGER宣布最新的Ozone的3.30版本——J-Link調試器發布。此更新帶來了許多新功能和改進,將增強您的調試體驗。
    的頭像 發表于 06-13 11:37 ?1380次閱讀

    如何使用Ozone的快照功能

    Ozone是一個跨平臺支持的代碼調試軟件,支持J-link和J-Trace調試器。可以加載SES、Keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執行文件,進行C/C++源碼
    的頭像 發表于 11-05 17:38 ?821次閱讀
    如何使用<b class='flag-5'>Ozone</b>的快照<b class='flag-5'>功能</b>
    主站蜘蛛池模板: 在线视频一区二区三区 | 在线观看www妖精免费福利视频 | 1000又爽又黄禁片 | www.色播.com | 亚洲第一视频区 | 美国一级毛片不卡无毒 | 国产成人在线播放视频 | 狠狠色狠狠干 | 人与牲动交xxxxbbbb | 午夜免费一级片 | 国产成人在线影院 | 久久精品视频5 | 国产专区日韩精品欧美色 | 在线播放你懂得 | 三级黄色一级视频 | 国产成人精品亚洲日本在线观看 | 我想看三级特黄 | 日韩毛片 | 三级亚洲| 日本免费黄色录像 | 国产精品天天看 | 天天干天天干天天操 | 免费在线你懂的 | 国产精品久久久久久久久齐齐 | 在线看片地址 | 久久青草精品免费资源站 | 日本最好的免费影院 | 综合色综合 | 欧美日韩亚洲国产 | 丁香伊人五月综合激激激 | 美女被免费网站视频在线 | 特级a毛片| 天天碰夜夜操 | 狠狠色噜狠狠狠狠 | 色婷婷亚洲精品综合影院 | 福利看片 | 欧美三级视频在线 | 婷婷丁香激情五月 | 道区二区三区四区 | 高清成年美女黄网站色大 | 色婷婷六月丁香在线观看 |