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

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

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

3天內不再提示

ARM的異常有哪些?ARM的異常向量表基地址

安芯教育科技 ? 來源:Arm精選 ? 2024-08-07 09:22 ? 次閱讀

以下文章來源于Arm精選 ,作者baron

1、51單片機的中斷響應模型

我們先回憶一下在單片機上的中斷的使用。

如下圖所示,左邊是51單片機的管腳圖,P3.0-P3.5是單片機對應的中斷管教,當該管教電平發生變化時,觸發cpu異常。

當cpu來了一個異常時(中斷),cpu跳轉到異常向量地址處,執行handler函數,執行完畢后再回來

wKgZomayzHmAH8hSAAQGWrN7aLc934.jpg

那么cpu異常時,跳轉的是哪個地址呢,其實這都是cpu出廠時設計好的。如下圖所示,左邊是cpu設計好的異常向量表基地址。右邊是軟件對異常的處理。

當來了一個uart中斷時,cpu觸發異常跳轉到0023地址處,而該地址處執行LJMP UART0_ISR指令,跳轉UART0_IAR函數去處理中斷…

wKgZomayzJyAXhfoAAJARjrTErc972.png

2、ARM的異常有哪?

在ARMV7上,ARM異常有:RESET、swi、undef、prefetch、data abort、irq、fiq

其中RESET、swi是同步異常,其余是異步異常

在ARMV8上,ARM異常有serror、irq、fiq、Synchronous

其中Synchronous是同步異常,serror、irq、fiq是異步異常

解釋一下什么是同步異常什么是異步異常?

同步異常:軟件觸發行為、知道什么時候發生 例如:svc、smc、hyc指令觸發的都是同步異常

異步異常:軟硬件行為,不知道什么時候發生,發生時間是隨機的 例如:irq中斷觸發irq異常、fiq中斷觸發fiq異常…

當異常發生了,ARM CORE就要跳轉到異常向量表地址處了。其實是跳轉到:異常基地址 + 異常向量表偏移處

3、ARM的異常向量表基地址

(1)、ARMV7的異常向量表基地址

主要為VBAR、HVBAR、MVBAR三個寄存器,其中VBAR是banked.

wKgZomayzKeABzd7AAI6_qEN6Lo038.png

(2)、ARMV8的異常向量表基地址

主要為VBAR_EL1、VBAR_EL2、VBAR_EL3三個寄存器

wKgaomayzLCATJJJAAGXURhwgiM269.png

4、ARM的向量表offset

(1)、armv7的異常向量表的定義

其實在armv7上有多張異常向量表,下圖分別列舉出在secure、non-secure側的兩張異常向量表

wKgaomayzMGAcoFcAAI5QlmqZ6w171.png

wKgaomayzNCAHRJmAAITXrtxIRM582.png

(2)、在armv8上異常向量表

wKgaomayzOSAGbpeAAHzlPRBVHA101.png

實際上有四組表,每組表有四個異常入口,分別對應同步異常,IRQ,FIQ和出錯異常。

如果發生異常并不會導致exception level切換,并且使用的棧指針是SP_EL0,那么使用第一組異常向量表。

如果發生異常并不會導致exception level切換,并且使用的棧指針是SP_EL1/2/3,那么使用第二組異常向量表。

如果發生異常會導致exception level切換,并且比目的exception level低一級的exception

level運行在AARCH64模式,那么使用第三組異常向量表。

如果發生異常會導致exception level切換,并且比目的exception level低一級的exception

level運行在AARCH32模式,那么使用第四組異常向量表。

另外我們還可以看到的一點是,每一個異常入口不再僅僅占用4bytes的空間,而是占用0x80 bytes空間,也就是說,每一個異常入口可以放置多條指令,而不僅僅是一條跳轉指令

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

    關注

    6065

    文章

    44946

    瀏覽量

    648014
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9325

    瀏覽量

    375628
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11053

    瀏覽量

    216254
  • 中斷
    +關注

    關注

    5

    文章

    904

    瀏覽量

    42571

原文標題:ARM Core如何響應中斷的

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ARM9的高端異常向量基址硬件如何配置?

    請問: S3C2440可以通過設置/清除CP15協處理器的寄存器1的bit13來設置高端/低端異常向量地址,我從網上看到說也可以通過硬件電路控制,但是我一直沒有查到硬件如何配置???我想了解下,謝謝誰來解惑,
    發表于 04-25 07:45

    ARM寄存器分析以及異常處理方法

    :(1)從spsr恢復cpsr(2)從lr恢復pc注意:這些操作必須在ARM狀態執行TIPS:(1)異常向量表中除了FIQ中斷都是4個字節,所以只夠存放一段異常處理程序的代碼的首地址
    發表于 09-10 07:00

    arm異常的處理方法

    。例如:如果是swi指令引起的異常ARM核最后就會修改pc的值為0x08。是不是異常向量表,一定要放在0x00000000或0xffff00000其始的地址呢?答案:不是,現在cor
    發表于 04-20 10:52

    資料下載:[architecture]-ARM Core如何響應中斷的

    目錄1、51單片機的中斷響應模型2、ARM異常有哪?3、ARM異常向量表基地址4、ARM
    發表于 07-01 08:44

    淺析ARM異常分類與異常處理

    的。并且由于每一個內存都剛好是4字節  (即32位),剛好能放一條ARM指令。  上面所說的異常向量地址是從0x00開始的,實際上有些是從0xFFFF0000  開始的,例如ARM720T、A
    發表于 04-26 09:29

    ARM中斷向量表異常處理過程解析

    中斷向量表|異常處理過程中斷隨機產生之后,怎么跳轉到中斷的處理程序中去(中斷向量表)SWI軟中斷指令:模擬CPU外面的某個硬件的管腳產生中斷信號4. 軟中斷處理程序實例原作者:西二旗指南
    發表于 05-05 10:16

    一文弄懂ARM芯片的地址重映射

    異常向量表就存放在0x80000000起始的64個(其中有32個存放異常向量)物理存儲單元中。但是ARM核發生異常(中斷)后是從0x00000000~0x0000003F
    發表于 05-23 15:03

    ARM未定義指令異常和SVC異常是什么意思

    異常向量表的概述在上一章,我們學習了建立異常向量表,這里我們可以通過看arm的手冊,我們每一種異常都對應一個工作模式,下面我就來嘗試觸發一下未定義指令
    發表于 05-26 16:17

    教你一種ARM處理異常中斷的方法

    道理相同),由于異常模式不同以及ARM內核采用流水線技術,異常處理程序里要根據異常模式計算返回地址。跳入
    發表于 08-18 15:26

    異常向量表重映射

    異常向量表重映射 向量表異常產生時內核獲取異常處理函數入口地址的一塊連續內存,每一個異常
    發表于 03-26 09:34 ?20次下載

    如何理解ARM異常、中斷和向量表

    以前,我一直很疑惑這個“ ARM異常 、 中斷以 及他們的 向量表 ”是怎么回事,他們到底是怎么實現的,沒有想到今天偶然看到(ARM System Developers Guide
    發表于 06-14 10:34 ?4539次閱讀
    如何理解<b class='flag-5'>ARM</b><b class='flag-5'>異常</b>、中斷和<b class='flag-5'>向量表</b>

    ARM體系結構所支持的異常有哪些含義和所支持的異常類型概述

    ARM 體系結構所支持的異常和具體含義如下:1、復位(優先級1) 當處理器的復位電平有效時,產生復位異常,程式跳轉到復位異常處執行(異常向量
    發表于 02-26 10:32 ?3次下載
    <b class='flag-5'>ARM</b>體系結構所支持的<b class='flag-5'>異常有</b>哪些含義和所支持的<b class='flag-5'>異常</b>類型概述

    嵌入式系統原理及應用教程之ARM異常中斷處理及編程的資料說明

    ARM體系結構中,存在7種異常處理。當異常發生時,處理器會把PC設置為一個特定的存儲器地址。這一地址放在被稱為
    發表于 03-20 10:25 ?7次下載
    嵌入式系統原理及應用教程之<b class='flag-5'>ARM</b><b class='flag-5'>異常</b>中斷處理及編程的資料說明

    ARM體系結構所支持的異常和具體含義

    ARM處理器或協處理器遇見不能處理的指令時,產生為定義異常。可使用該異常機制進行軟件仿真(異常向量:0x0000,0004);
    的頭像 發表于 10-24 15:52 ?4219次閱讀

    ARM interrupt-4

    文章目錄前言overview控制器寄存器軟件需要做的工作:中斷控制器初始化外部中斷前言??overviewSoC對中斷的實現機制:異常向量表,此文講過(1)異常向量表是CPU中某些特定地址的特定
    發表于 12-04 15:36 ?0次下載
    <b class='flag-5'>ARM</b> interrupt-4
    主站蜘蛛池模板: 久久电影福利 | 久久大综合| 亚洲精品久久久久久婷婷 | 日韩一级特黄毛片在线看 | 在线观看一区二区三区四区 | 日本一区三区二区三区四区 | 孩交精品xxxx视频视频 | 成人免费视频一区二区三区 | 在线播放免费 | 天天综合网天天综合色不卡 | 午夜视频福利在线观看 | 天天视频色 | 在线网站你懂得 | 97人人模人人揉人人捏 | 亚洲va久久久噜噜噜久久狠狠 | 国产一区二区中文字幕 | 模特精品视频一区 | 欧美色亚洲 | 午夜寂寞影院视频观看 | 一级特级aaaa毛片免费观看 | 欧美不卡在线视频 | 色多多在线| 日日摸夜夜添免费毛片小说 | 香港日本三级在线播放 | 97天天操 | 爱婷婷视频在线观看 | 国产资源在线视频 | 精品国产免费观看久久久 | 婷婷四房综合激情五月性色 | 人人福利| 午夜三级国产精品理论三级 | 亚洲综合区图片小说区 | 视频精品一区二区三区 | 久久免费视频网站 | 狠狠狠狠操 | 日本不卡视频在线播放 | 综合天天 | 色多多免费视频 | 人人人干 | 特黄特色三级在线播放 | 欧洲一级鲁丝片免费 |