chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

安芯教育科技 ? 來源:Arm精選 ? 2024-08-07 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1、51單片機(jī)的中斷響應(yīng)模型

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

如下圖所示,左邊是51單片機(jī)的管腳圖,P3.0-P3.5是單片機(jī)對(duì)應(yīng)的中斷管教,當(dāng)該管教電平發(fā)生變化時(shí),觸發(fā)cpu異常。

當(dāng)cpu來了一個(gè)異常時(shí)(中斷),cpu跳轉(zhuǎn)到異常向量地址處,執(zhí)行handler函數(shù),執(zhí)行完畢后再回來

wKgZomayzHmAH8hSAAQGWrN7aLc934.jpg

那么cpu異常時(shí),跳轉(zhuǎn)的是哪個(gè)地址呢,其實(shí)這都是cpu出廠時(shí)設(shè)計(jì)好的。如下圖所示,左邊是cpu設(shè)計(jì)好的異常向量表基地址。右邊是軟件對(duì)異常的處理。

當(dāng)來了一個(gè)uart中斷時(shí),cpu觸發(fā)異常跳轉(zhuǎn)到0023地址處,而該地址處執(zhí)行LJMP UART0_ISR指令,跳轉(zhuǎn)UART0_IAR函數(shù)去處理中斷…

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是異步異常

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

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

異步異常:軟硬件行為,不知道什么時(shí)候發(fā)生,發(fā)生時(shí)間是隨機(jī)的 例如:irq中斷觸發(fā)irq異常、fiq中斷觸發(fā)fiq異?!?/p>

當(dāng)異常發(fā)生了,ARM CORE就要跳轉(zhuǎn)到異常向量表地址處了。其實(shí)是跳轉(zhuǎn)到:異常基地址 + 異常向量表偏移處

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

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

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

wKgZomayzKeABzd7AAI6_qEN6Lo038.png

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

主要為VBAR_EL1、VBAR_EL2、VBAR_EL3三個(gè)寄存器

wKgaomayzLCATJJJAAGXURhwgiM269.png

4、ARM的向量表offset

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

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

wKgaomayzMGAcoFcAAI5QlmqZ6w171.png

wKgaomayzNCAHRJmAAITXrtxIRM582.png

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

wKgaomayzOSAGbpeAAHzlPRBVHA101.png

實(shí)際上有四組表,每組表有四個(gè)異常入口,分別對(duì)應(yīng)同步異常,IRQ,F(xiàn)IQ和出錯(cuò)異常。

如果發(fā)生異常并不會(huì)導(dǎo)致exception level切換,并且使用的棧指針是SP_EL0,那么使用第一組異常向量表。

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

如果發(fā)生異常會(huì)導(dǎo)致exception level切換,并且比目的exception level低一級(jí)的exception

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

如果發(fā)生異常會(huì)導(dǎo)致exception level切換,并且比目的exception level低一級(jí)的exception

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650612
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9353

    瀏覽量

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

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217131
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    905

    瀏覽量

    42812

原文標(biāo)題:ARM Core如何響應(yīng)中斷的

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

    arm異常的處理方法

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

    資料下載:[architecture]-ARM Core如何響應(yīng)中斷的

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

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

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

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

    中斷向量表|異常處理過程中斷隨機(jī)產(chǎn)生之后,怎么跳轉(zhuǎn)到中斷的處理程序中去(中斷向量表)SWI軟中斷指令:模擬CPU外面的某個(gè)硬件的管腳產(chǎn)生中斷信號(hào)4. 軟中斷處理程序?qū)嵗髡撸何鞫熘改?/div>
    發(fā)表于 05-05 10:16

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

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

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

    異常向量表的概述在上一章,我們學(xué)習(xí)了建立異常向量表,這里我們可以通過看arm的手冊(cè),我們每一種異常都對(duì)應(yīng)一個(gè)工作模式,下面我就來嘗試觸發(fā)一下未定義指令
    發(fā)表于 05-26 16:17

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

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

    異常向量表重映射

    異常向量表重映射 向量表異常產(chǎn)生時(shí)內(nèi)核獲取異常處理函數(shù)入口地址的一塊連續(xù)內(nèi)存,每一個(gè)異常
    發(fā)表于 03-26 09:34 ?20次下載

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

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

    ARM體系結(jié)構(gòu)所支持的異常有哪些含義和所支持的異常類型概述

    ARM 體系結(jié)構(gòu)所支持的異常和具體含義如下:1、復(fù)位(優(yōu)先級(jí)1) 當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程式跳轉(zhuǎn)到復(fù)位異常處執(zhí)行(異常向量
    發(fā)表于 02-26 10:32 ?3次下載
    <b class='flag-5'>ARM</b>體系結(jié)構(gòu)所支持的<b class='flag-5'>異常有</b>哪些含義和所支持的<b class='flag-5'>異常</b>類型概述

    嵌入式系統(tǒng)原理及應(yīng)用教程之ARM異常中斷處理及編程的資料說明

    ARM體系結(jié)構(gòu)中,存在7種異常處理。當(dāng)異常發(fā)生時(shí),處理器會(huì)把PC設(shè)置為一個(gè)特定的存儲(chǔ)器地址。這一地址放在被稱為
    發(fā)表于 03-20 10:25 ?7次下載
    嵌入式系統(tǒng)原理及應(yīng)用教程之<b class='flag-5'>ARM</b><b class='flag-5'>異常</b>中斷處理及編程的資料說明

    ARM體系結(jié)構(gòu)所支持的異常和具體含義

    當(dāng)ARM處理器或協(xié)處理器遇見不能處理的指令時(shí),產(chǎn)生為定義異常。可使用該異常機(jī)制進(jìn)行軟件仿真(異常向量:0x0000,0004);
    的頭像 發(fā)表于 10-24 15:52 ?4284次閱讀

    ARM interrupt-4

    文章目錄前言overview控制器寄存器軟件需要做的工作:中斷控制器初始化外部中斷前言??overviewSoC對(duì)中斷的實(shí)現(xiàn)機(jī)制:異常向量表,此文講過(1)異常向量表是CPU中某些特定地址的特定
    發(fā)表于 12-04 15:36 ?0次下載
    <b class='flag-5'>ARM</b> interrupt-4