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

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

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

3天內不再提示

深入探討單片機異常處理

單片機匠人 ? 來源:單片機匠人 ? 作者: 黃忠老師 ? 2021-10-20 10:55 ? 次閱讀

ARM處理器中,如果一個程序產(chǎn)生了錯誤并且被處理器檢測到,這是就會產(chǎn)生錯誤異常。

錯誤是怎么發(fā)生的呢?

許多可能的原因都會引起錯誤發(fā)生,比如對于存儲器相關錯誤,總線系統(tǒng)的異常響應可以有以下原因:

訪問的地址非法;

由于傳輸?shù)念愋头欠ǎ偩€的從設備不接受此次傳輸(從設備決定)

由于傳輸未使能或初始化,總線的從設備無法進行此次傳輸(例如,如果外設的時鐘被關閉,那么訪問這個外設時,微控制器就可能會產(chǎn)生錯誤響應)。

當確定了硬件錯誤異常的直接原因以后,我們可能還得花費一些時間來確定問題的根源。例如,總線錯誤可以由很多種情況引發(fā),例如錯誤的指針操作、棧空間損壞、內存溢出、非法存儲器映射以及其他原因。

分析錯誤

根據(jù)錯誤類型的不同,通常能夠直接確定引起硬件錯誤異常的指令的位置。要實現(xiàn)這個目的,就需要知道進入硬件錯誤異常時的寄存器的內容,以及異常處理前壓入棧中的寄存器的內容。這些值中包含了程序返回地址,通過它也能知道引起錯誤的指令地址。

如果使用了調試器,那么可在工程中創(chuàng)建硬件錯誤異常處理,并且在其中添加一個用以暫停處理器的斷點指令;或者也可以在硬件錯誤異常處理的開始部分設置一個斷點,這樣當硬件錯誤發(fā)生時,處理器就會自動暫停。在處理器由于硬件錯誤暫停后,我們就可以嘗試著按照下面圖的流程對錯誤進行定位。

為了給分析提供更多的信息,也可以生成程序映像的匯編代碼,并且利用在棧幀中找到的PC值確定錯誤的位置。如果錯誤的地址為存儲器訪問指令,就應該檢查寄存器的值確定存儲器訪問的地址是否合法。除了檢查地址范圍,也應該確認存儲器的地址是否正確地對齊。

除了壓入棧中的PC值(返回地址),棧幀中也包含了其他有助于調試的寄存器值。例如,壓入棧的IPSR能夠反映處理器是否在進行異常處理,EPSR則代表了處理器狀態(tài)(EPSR的T位為0,則表示錯誤由意外切換至ARM狀態(tài)引起)。

棧中的LR也可能會提供一些信息,例如發(fā)生錯誤的函數(shù)的返回地址,錯誤是否發(fā)生在異常處理中,以及EXC_RETURN的值是否被異常破壞等。

另外,當前的寄存器值也可以提供有助于定位錯誤原因的各種信息,除了當前棧指針的值,當前的鏈接寄存器的值也可能有幫助。如果LR中為非法的EXC_RETURN的值,這就意味著它在前面異常處理中被錯誤地修改了。

CONTROL寄存器也可以提供幫助。在沒有OS的簡單應用程序中,進程棧指針(PSP)不會被用到,并且CONTROL寄存器會一直保持為0。如果CONTROL寄存器被設置為0x2(PSP用于線程狀態(tài)),這就意味著LR在之前的異常處理中被錯誤地修改了,或者棧內容被破壞導致了EXC_RETURN的值錯誤。

編輯:jq

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

    關注

    31

    文章

    5363

    瀏覽量

    120959
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164201
  • ARM處理器
    +關注

    關注

    6

    文章

    361

    瀏覽量

    41880

原文標題:單片機的異常處理

文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深入探討Linux系統(tǒng)中的動態(tài)鏈接庫機制

    異常或崩潰。為深入理解動態(tài)鏈接機制及其工作原理,我重溫了《程序員的自我修養(yǎng)》,并通過實踐演示與反匯編分析,了解了動態(tài)鏈接的過程。 本文將深入探討Linux系統(tǒng)中的動態(tài)鏈接庫機制,這其中包括但不限于全局符號介入(Global Sy
    的頭像 發(fā)表于 12-18 10:06 ?180次閱讀
    <b class='flag-5'>深入探討</b>Linux系統(tǒng)中的動態(tài)鏈接庫機制

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執(zhí)行主程序的過程中,能夠暫停當前任務,轉而處理外部或內部緊急事件。這種機制極大地提高了系統(tǒng)的響應速度和
    的頭像 發(fā)表于 10-17 18:03 ?926次閱讀

    單片機異常復位的原因

    單片機異常復位是指單片機在正常工作過程中,非預期地返回到初始狀態(tài)或重啟。這種異常復位現(xiàn)象可能由多種因素引起,以下是對單片機
    的頭像 發(fā)表于 10-17 17:56 ?1332次閱讀

    單片機SPI通信實現(xiàn)

    深入探討單片機(如基于STM32、AVR、PIC等)如何通過SPI(Serial Peripheral Interface)進行通信之前,我們先概述SPI通信的基本原理,隨后以STM32微控制器為例,詳細解釋如何配置SPI接口,并提供相應的代碼示例。
    的頭像 發(fā)表于 09-09 17:00 ?703次閱讀

    一文讀懂什么單片機:組成結構與應用

    歡迎來到單片機的世界,這是一種微小(但功能強大)的設備,改變了嵌入式系統(tǒng)的面貌。在本文中,您將了解單片機的一些基本知識、單片機的結構以及微處理器與
    的頭像 發(fā)表于 08-09 11:49 ?1782次閱讀
    一文讀懂什么<b class='flag-5'>單片機</b>:組成結構與應用

    單片機和plc有什么相同和不同之處

    某些方面具有相似之處,但在許多關鍵方面也存在顯著差異。本文將詳細探討單片機和PLC的相同和不同之處。 一、相同之處 控制功能:單片機和PLC都具有控制功能,可以對各種設備和系統(tǒng)進行控制。它們可以接收輸入信號,
    的頭像 發(fā)表于 06-06 14:05 ?1355次閱讀

    單片機可以替代PLC嗎

    以其集成度高、體積小、成本低等特點在工業(yè)控制中占據(jù)了一席之地,而PLC則以其高可靠性、穩(wěn)定性和靈活性在工業(yè)自動化領域得到了廣泛應用。那么,問題來了:單片機是否可以替代PLC呢?本文將從多個角度對這一問題進行深入探討
    的頭像 發(fā)表于 06-03 14:47 ?735次閱讀

    寄存器和單片機的關系與區(qū)別

    ,它將具有數(shù)據(jù)處理能力的中央處理器CPU、內存、輸入輸出設備等功能集成在一塊硅片上,形成了一個小而完善的微型計算機系統(tǒng)。本文將詳細探討寄存器和單片機的關系與區(qū)別,旨在為讀者提供清晰、
    的頭像 發(fā)表于 05-30 17:17 ?893次閱讀

    PLC與單片機的區(qū)別是什么

    。它們各自具有獨特的功能和優(yōu)勢,適用于不同的應用場景。本文將深入探討PLC和單片機的區(qū)別,旨在幫助讀者更好地理解這兩種控制設備的特點和選擇。
    的頭像 發(fā)表于 05-28 16:11 ?2049次閱讀

    單片機開發(fā)好學嗎?學習中有哪些樂趣與挑戰(zhàn)?

    一提到單片機學習大家都會覺得難學,事實真的是這樣嗎?今天就來探討一些單片機學習的那點事兒。對于許多初學者來說,剛開始接觸單片機編程可能會感到有些挑戰(zhàn),但同時也充滿了樂趣和探索的機會。讓
    的頭像 發(fā)表于 03-28 08:04 ?2096次閱讀
    <b class='flag-5'>單片機</b>開發(fā)好學嗎?學習中有哪些樂趣與挑戰(zhàn)?

    單片機是什么?單片機編程如何入門?

    單片機其實是一種很早的叫法了,最開始我們的前輩叫單板機或者叫單片機,因為那個時候單片機處理能力還沒有很強,現(xiàn)在我們所用的基本都是微型處理
    的頭像 發(fā)表于 03-28 08:03 ?2132次閱讀
    <b class='flag-5'>單片機</b>是什么?<b class='flag-5'>單片機</b>編程如何入門?

    單片機抗干擾措施有哪些?

    電磁干擾(EMI)問題日益成為影響單片機穩(wěn)定性與可靠性的主要障礙。因此,探討和實施有效的抗干擾措施對于提高單片機系統(tǒng)的性能至關重要。下面為大家簡單介紹一種單片機抗干擾措施
    的頭像 發(fā)表于 03-15 16:36 ?2844次閱讀
    <b class='flag-5'>單片機</b>抗干擾措施有哪些?

    單片機編程和plc編程有什么區(qū)別

    單片機編程和PLC編程是兩種不同的嵌入式系統(tǒng)開發(fā)領域。在這篇文章中,我們將詳細探討這兩種編程方式的區(qū)別。首先,我們將簡要介紹單片機和PLC的基本概念,然后分析它們的不同特點和使用場景。 一、
    的頭像 發(fā)表于 02-22 10:23 ?2905次閱讀

    處理器與單片機的區(qū)別 單片機進階學習技巧

    處理器只是一個CPU,而單片機則是由CPU與其它的接口電路組合而成的,所以CPU不等于單片計算機。也可以這樣說,CPU只是計算機其中的一個部件而已。
    發(fā)表于 02-02 14:30 ?2449次閱讀

    單片機的最小系統(tǒng)由什么組成 單片機的最小系統(tǒng)包括哪些

    單片機(Microcontroller Unit,MCU)的最小系統(tǒng)包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統(tǒng)的核心部分,它集成了中央處理器(Central Proc
    的頭像 發(fā)表于 02-02 11:27 ?1.1w次閱讀
    主站蜘蛛池模板: 国产野外无码理论片在线观看 | 欧美乱码卡一卡二卡四卡免费 | 俄罗斯XBXBXB兽交 | 国产99视频精品一区 | 亚洲免费福利在线视频 | 亚洲综合无码一区二区 | 99久久精品国产高清一区二区 | 久久无码人妻AV精品一区 | 亚洲视频欧美在线专区 | 国产亚洲视频精彩在线播放 | 一个人看的WWW高清电影 | 吃奶摸下的羞羞漫画 | 琪琪色原网20岁以下热热色原网站 | 九九热只有精品 | MD传媒在线观看佳片 | 一本之道高清在线观看免费 | 午夜看片a福利在线观看 | 99久久99久久久精品久久 | 97影院午夜午夜伦不卡 | 超碰在线97av视频免费 | 亚洲一区精品伊人久久伊人 | 午夜不卡av免费 | 国产精品亚洲国产三区 | 中文成人在线视频 | 国产成人精品久久久久婷婷 | 最新黄yyid| 黑人巨摘花破女处 | 免费无码国产欧美久久18 | 国产啪精品视频网免费 | 国产在线观看www鲁啊鲁免费 | 超碰97视频在线观看 | 伊人亚洲综合青草青草久热 | 亚洲无吗在线视频 | 久久青草免费91线频观看站街 | 美女被抽插到哭内射视频免费 | 我年轻漂亮的继坶2中字在线播放 | 日本二区三区欧美亚洲国 | 欧式午夜理伦三级在线观看 | 国产精品永久免费视频观看 | 伊人久久大香线蕉综合电影网 | 国产精品高清视亚洲一区二区 |