色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何在IAR Embedded Workbench for Arm中調試Cortex-M HardFault

電子工程師 ? 來源:IAR愛亞系統 ? 作者:IAR愛亞系統 ? 2022-08-05 11:11 ? 次閱讀

基于Cortex-M的MCU被廣泛應用于各種嵌入式系統中,Cortex-M有很多優點,比如高性能、低功耗、高代碼密度、豐富的調試功能、強大的生態系統等。在錯誤異常處理上,Cortex-M提供了強大的錯誤異常機制,幫助提升系統的穩健性。

本文主要介紹如何在IAR Embedded Workbench for Arm中調試Cortex-M HardFault,幫助開發人員在開發過程中盡早發現代碼中的錯誤異常、提升開發和調試效率、提高代碼質量。

關于 Cortex-M Fault

Cortex-M包含了如下幾種Fault:

HardFault: 在異常處理中發生錯誤導致的Fault,或者是不能被其它異常處理的Fault。

MemManage Fault: 違反內存訪問規則導致的Fault。

BusFault: 內存訪問過程中總線出錯導致的Fault。

UsageFault: 指令執行時出錯導致的Fault,包括:

- 未定義的指令

- 非法未對齊訪問

- 指令執行時非法狀態

- 異常返回錯誤 下面兩個需要額外使能: - 未對齊訪問字和半字內存

- 除零操作

其中,HardFault是永遠使能的,而MemManage Fault,BusFault和UsageFault默認是沒有使能的,對應的Fault發生之后會升級為HardFault。

在IAR Embedded Workbench for Arm中
調試Cortex-M HardFault

下面通過幾個示例介紹如何在IAR Embedded Workbench for Arm中調試Cortex-M HardFault。

示例1除零操作導致UsageFault

這個例子中,通過配置CCR寄存器中的DIV_0_TRP來使能除零操作異常。在Call Stack窗口中,可以看到對應發生除零操作的源代碼行。在Register窗口中,可以看到 CFSR 寄存器中的DIVBYZERO 置位,表示出現了除零操作異常。在Debug Log和Fault exception viewer窗口中,可以看到詳細的錯誤信息:發生了除零操作異常,導致UsageFault,由于UsageFault沒有使能,升級為HardFault,同時給出了除零操作異常發生的PC地址和LR地址。

c67070b2-146b-11ed-ba43-dac502259ad0.png

示例2訪問無效地址導致BusFault

這個例子中,地址0x7000000是MCU中的無效地址,當訪問無效地址時,會產生BusFault。在Call Stack窗口中,可以看到訪問無效地址的源代碼行。在Register窗口中,可以看到CFSR 寄存器的的PRECISERR和BFARVALID置位,表示出現了Precise data bus error,同時BFAR中保存了對應訪問的無效地址。在Debug Log和Fault exception viewer窗口中,可以看到詳細的錯誤信息:發生了precise data access error,導致BusFault,由于BusFault沒有使能,升級為HardFault,同時給出了precise data access error發生時的PC地址和LR地址及對應訪問的無效地址。

c69ec2fa-146b-11ed-ba43-dac502259ad0.png

示例3從XN(Execute Never)內存運行程序導致MemManage Fault

在這個例子中,地址0x4000000在Cortex-M中是屬Peripheral地址空間,對應的內存屬性屬于XN(Execute Never):即如果從XN內存運行程序會造成MemManage Fault。在Call Stack窗口中,可以看到對應的源代碼行。在Register窗口中,可以看到CFSR 寄存器的的IACCVIOL置位,表示發生了instruction access violation。在Debug Log和Fault exception viewer窗口中,可以看到詳細的錯誤信息:XN訪問違反導致MemManage Fault,由于MemManage Fault沒有使能,升級為HardFault,同時給出了XN訪問發生時的PC地址和LR地址, 通過LR地址可以找到之前函數調用的地方(即導致MemManage Fault的地方)。

c6d05b26-146b-11ed-ba43-dac502259ad0.png

注意事項

1. 為了在調試時出現Fault之后程序能夠立即停下來,從而可以更好地分析出現Fault之后的現場,需要使能對應的Vector catch選項(默認是使能的):關于Vector catch的更多信息,請參考ARMv7-M Architecture Reference Manual。

c6e686a8-146b-11ed-ba43-dac502259ad0.png

2. 本文中的示例是基于Cortex-M4,其它Cortex-M的錯誤異常機制可能會有所不同(比如基于ARMv6-M的Cortex-M0/M0+/M1只有HardFault,沒有MemManage Fault,BusFault和UsageFault),對應Register窗口中的信息可能與上面的截圖不同,具體取決于所使用的 Cortex-M 類型。但是本文的方法適用于所有Cortex-M的HardFault調試。

總結

本文以Cortex-M4為例,介紹了如何在IAR Embedded Workbench for Arm中調試Cortex-M HardFault。通過分析Call Stack,Register,Debug Log和Fault exception viewer窗口中的信息,可以快速地找到HardFault的原因,盡早發現代碼中的錯誤異常,從而提升開發和調試效率,提高代碼質量。

審核編輯 :李倩

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

    關注

    10

    文章

    2900

    瀏覽量

    88293
  • IAR
    IAR
    +關注

    關注

    5

    文章

    354

    瀏覽量

    36750
  • Cortex-M
    +關注

    關注

    2

    文章

    229

    瀏覽量

    29806

原文標題:在IAR Embedded Workbench for Arm中調試Cortex-M HardFault

文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    IAR與紫光同芯合作,全面支持THA6系列汽車芯片

    近日,全球領先的嵌入式系統開發軟件解決方案提供商IAR與業內知名的芯片及解決方案提供商紫光同芯攜手宣布,最新版本的IAR Embedded Workbench for
    的頭像 發表于 12-27 11:46 ?855次閱讀

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

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

    芯海通用 MCU應用筆記 :在 IAR 及 MDK 開發環境下使用 printf 函數重定向移植差異指南

    最新發布的集成開發環境 IAR Embedded Workbench for Arm 9.32 版本已全面支持芯海科技 32 位 MCU 芯片,其
    發表于 05-16 11:56

    芯海應用筆記:通用 MCU 基于 IAR 芯片包 IAR9 開發指南

    芯海科技與 IAR Systems 達成合作,IAR Embedded Workbench for Arm 已全面支持芯海科技CS32F10
    發表于 05-16 11:52

    IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報錯怎么解決?

    請教 IAR 這個錯誤是什么問題 在IAR版本為Embedded Workbench 6.0 Kickstart 1.30 編繹正常沒出錯 在I
    發表于 05-09 06:36

    IAR FOR ARMIAR FOR STM8無法共存怎么解決?

    IAR Embedded Workbench,CD 找了原程序,發現IAR FOR ARM和FOR STM8安裝完后,都叫IarIdePm
    發表于 04-07 07:39

    何在IAR IDE調試基于Cortex-R52的RZ/T&amp;N MPU的變量實時監控?

    變量實時監視功能是指IAR Embedded Workbench集成開發環境中提供的實時變量監控功能。
    的頭像 發表于 03-27 13:35 ?2659次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>IAR</b> IDE<b class='flag-5'>中</b><b class='flag-5'>調試</b>基于<b class='flag-5'>Cortex</b>-R52的RZ/T&amp;N MPU的變量實時監控?

    Cortex-M0+內核介紹

    和8位的價位實現32位性能。處理器的低門數使其能夠部署在需要簡單功能的應用。 作為ARM Cortex-M處理器系列的最新成員,32位Cortex-M0+處理器采用了低成本90納米低
    的頭像 發表于 03-27 09:13 ?1136次閱讀
    <b class='flag-5'>Cortex-M</b>0+內核介紹

    IAR全面支持小華全系芯片,強化工控及汽車MCU生態圈

    來源:IAR IAR Embedded Workbench for Arm已全面支持小華半導體系列芯片,加速高端工控MCU和車用MCU應用的
    的頭像 發表于 03-13 23:02 ?553次閱讀
    <b class='flag-5'>IAR</b>全面支持小華全系芯片,強化工控及汽車MCU生態圈

    IAR已全面支持小華半導體系列芯片,強化工控汽車MCU生態圈

    IAR Embedded Workbench for Arm 已全面支持小華半導體系列芯片,加速高端工控MCU和車用MCU應用的安全開發。
    的頭像 發表于 03-07 11:38 ?1787次閱讀
    <b class='flag-5'>IAR</b>已全面支持小華半導體系列芯片,強化工控汽車MCU生態圈

    Cortex-M85內核單片機如何快速上手

    2022年4月,Arm推出了全新的MCU級內核Cortex-M85。截止目前(2024年2月),Cortex-M85是最新、最強的Cortex-M內核。
    發表于 02-29 09:35 ?792次閱讀
    <b class='flag-5'>Cortex-M</b>85內核單片機如何快速上手

    IAR推出新版IAR Embedded Workbench for Arm功能安全版

    全球知名的嵌入式系統開發軟件解決方案供應商IAR Systems近日宣布,其旗艦產品IAR Embedded Workbench for Arm
    的頭像 發表于 02-22 17:29 ?1463次閱讀

    ARM?Cortex?-M23 32位MCU數據表

    電子發燒友網站提供《ARM?Cortex?-M23 32位MCU數據表.pdf》資料免費下載
    發表于 02-22 14:32 ?0次下載
    <b class='flag-5'>ARM</b>?<b class='flag-5'>Cortex</b>?-<b class='flag-5'>M</b>23 32位MCU數據表

    IAR推出新版IAR Embedded Workbench for Arm功能安全版

    瑞典烏普薩拉,2024年2月20日 – 全球領先的嵌入式系統開發軟件解決方案供應商IAR宣布:推出其旗艦產品IAREmbedded Workbench for Arm功能安全版的最新版本9.50.3。
    的頭像 發表于 02-21 13:47 ?865次閱讀

    CYT2B9可以使用IAR + J-link進行Corex-M4工程的調試嗎?

    您好,我正在使用 CYT2B9,請問可以使用 IAR + J-link 進行 Corex-M4 工程的調試嗎? 我們目前的情況是只能使用 IAR+J-link
    發表于 02-02 08:31
    主站蜘蛛池模板: 秋霞电影网午夜一级鲁丝片 | 最近中文字幕完整版免费高清 | 俄罗斯14一18处交 | 亚洲欧洲日产国产 最新 | 久久久综合中文字幕久久 | 波多野结衣网站www 波多野结衣教师系列6 | 灌满内射HP1V1 | 亚洲国产AV一区二区三区四区 | 哒哒哒影院在线观看免费高清 | 老司机福利在视频在ae8 | 边摸边吃奶边做下面视频 | 亚洲视频在线观看视频 | 一个人视频日本在线观看 | 一本道的mv中文字幕 | 成人影片迅雷下载 | 午夜男女爽爽羞羞影院在线观看 | 在线精品国精品国产不卡 | 在线亚洲视频无码天堂 | 亚洲色大成网站www久久九九 | jizz女学| 国产日韩精品一区二区三区在线 | 中文字幕伊人香蕉在线 | 纯肉巨黄H爆粗口男男分卷阅读 | 久久综合香蕉久久久久久久 | 年轻老师毛茸茸自由性 | 农民下乡在线观看3 | 达达兔午夜一级毛片 | 亚洲欧美综合在线中文 | 亚洲偷自拍精品视频在线观看 | 99视频在线观看免费视频 | 美女张开腿让男人桶爽无弹窗 | 日本午夜福利无码高清 | 国内精品久久久久影院老司 | 香蕉eeww99国产精品 | 黑人巨茎大战白人女40CMO | 精品动漫国产亚洲AV在线观看 | 四虎永久免费 | 国内精品欧美久久精品 | 久久精品国产欧美成人 | 国产AV精品白浆一区二 | 久久爱狠狠综合网 |