一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢?

工程師鄧生 ? 來(lái)源:未知 ? 作者:劉芹 ? 2023-10-19 16:36 ? 次閱讀

ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢?

在計(jì)算機(jī)系統(tǒng)中,異常和中斷是兩個(gè)常見(jiàn)的概念。 在ARM中,異常和中斷的主要目的是幫助處理器響應(yīng)與系統(tǒng)操作相關(guān)的事件。 由于處理器必須同時(shí)執(zhí)行多個(gè)任務(wù),例如輸入/輸出(I / O)操作或計(jì)時(shí)器計(jì)數(shù),因此異常和中斷是必不可少的。

ARM異常和中斷是在ARM內(nèi)核中實(shí)現(xiàn)的,即在芯片上的處理器內(nèi)部。當(dāng)處理器執(zhí)行特定的任務(wù)時(shí),根據(jù)相應(yīng)的事件,就會(huì)發(fā)生異常或中斷。

ARM的異常和中斷模塊由多個(gè)不同的組件組成。 這些組件包括處理器模式,管理寄存器和中斷控制器等。 然后,處理器根據(jù)模式來(lái)響應(yīng)異常和中斷請(qǐng)求,并執(zhí)行特定的處理過(guò)程。

在ARM體系結(jié)構(gòu)中,處理器模式是ARM處理器的一種狀態(tài)。 處理器模式有七種不同的類(lèi)型:用戶(hù)模式,F(xiàn)IQ(快速中斷請(qǐng)求)模式,IRQ(普通中斷請(qǐng)求)模式,監(jiān)管模式,異常處理程序模式,中止處理程序模式和無(wú)效模式。 每個(gè)模式都定義了處理器在執(zhí)行任務(wù)時(shí)可以訪(fǎng)問(wèn)的寄存器和內(nèi)存空間等。其中,異常處理程序模式是由ARM處理器用來(lái)響應(yīng)異常事件和中斷請(qǐng)求的模式。

當(dāng)ARM處理器通過(guò)異?;蛑袛嗾?qǐng)求進(jìn)入異常處理程序模式時(shí),它會(huì)從當(dāng)前用戶(hù)模式切換到異常處理模式。處理器會(huì)將當(dāng)前CPU狀態(tài)(如程序計(jì)數(shù)器,標(biāo)志寄存器等)保存到內(nèi)部寄存器中,然后加載處理器模式下的堆棧指針。 接下來(lái),處理器將跳轉(zhuǎn)到指定的異常處理程序來(lái)處理異?;蛑袛嗾?qǐng)求。

在ARM中,中斷被分為兩類(lèi):快速中斷請(qǐng)求(FIQ)和普通中斷請(qǐng)求(IRQ)。 FIQ是ARM中處理時(shí)間敏感任務(wù)的快速中斷碼,可以提供更高的搶占優(yōu)先級(jí)和更快的響應(yīng)時(shí)間。所以,如果有FIQ請(qǐng)求,處理器會(huì)首先進(jìn)入FIQ模式處理中斷請(qǐng)求。IRQ被認(rèn)為是標(biāo)準(zhǔn)中斷請(qǐng)求,如果沒(méi)有FIQ請(qǐng)求,當(dāng)出現(xiàn)IRQ請(qǐng)求時(shí),ARM處理器便會(huì)進(jìn)入中斷模式。

在ARM中,中斷請(qǐng)求是通過(guò)中斷控制器發(fā)送的。中斷控制器位于ARM處理器芯片中,可以將中斷請(qǐng)求通過(guò)對(duì)應(yīng)的GPIO端口發(fā)送到ARM處理器中。 中斷控制器還會(huì)將相應(yīng)的中斷優(yōu)先級(jí)和中斷信息發(fā)送到ARM處理器,以便ARM處理器能夠進(jìn)入恰當(dāng)?shù)哪J教幚碇袛嗾?qǐng)求。

總結(jié)一下,ARM的異常和中斷機(jī)制提供了一種響應(yīng)系統(tǒng)事件的方式。從硬件角度來(lái)看,ARM處理器通過(guò)處理器模式,管理寄存器和中斷控制器等多個(gè)組件來(lái)處理異常和中斷請(qǐng)求。當(dāng)ARM處理器進(jìn)入異常處理程序模式時(shí),它從當(dāng)前模式切換到處理器模式,并依據(jù)中斷類(lèi)型切換到FIQ模式或IRQ模式。此過(guò)程中,中斷控制器會(huì)發(fā)送中斷請(qǐng)求并提供相應(yīng)的優(yōu)先級(jí)和信息。所有這些組成了ARM中異常和中斷機(jī)制的核心。

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

    關(guān)注

    134

    文章

    9270

    瀏覽量

    373641
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5401

    瀏覽量

    122808
  • 異常中斷
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    1289
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AG32 MCU 如何進(jìn)入低功耗模式

    的外設(shè)中斷都可以從休眠模式喚醒設(shè)備。如果使用WFE指令進(jìn)入睡眠模式,則一旦發(fā)生事件,MCU就退出睡眠模式。喚醒事件可以通過(guò)以下方式生成: (1)、在外圍控制寄存器啟用中斷,但在NVI
    發(fā)表于 04-21 11:29

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷異常情況,怎么解決?

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷異常情況,使用的HAL庫(kù)+MX配置的,示波器觀察波形ADC中斷
    發(fā)表于 03-14 12:46

    stm32f103定時(shí)器2配置中斷,程序一直死循環(huán),無(wú)法進(jìn)入中斷,怎么解決?

    目前定時(shí)器2配置中斷程序一直死循環(huán),無(wú)法進(jìn)入中斷,有無(wú)大佬請(qǐng)教或者看一下個(gè)參考?xì)v程
    發(fā)表于 03-12 08:18

    請(qǐng)問(wèn)STM32U073如何進(jìn)入DFU模式?

    我已經(jīng)實(shí)現(xiàn)了從程序內(nèi)按鍵進(jìn)入DFU模式?,F(xiàn)在的問(wèn)題是客戶(hù)首次下載程序何進(jìn)入。我板子上BOOT0通過(guò)10K電阻對(duì)地。預(yù)留了它對(duì)VCC的短接排
    發(fā)表于 03-11 07:12

    讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過(guò)中斷來(lái)讀取采樣數(shù)據(jù),要不要先關(guān)INT0中斷

    我讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過(guò)中斷來(lái)讀取采樣數(shù)據(jù)。請(qǐng)問(wèn)在中斷服務(wù)程序,要不要先關(guān)INT0
    發(fā)表于 01-13 06:11

    ADS8881 CONVST高電平變到低電平時(shí),進(jìn)入中斷進(jìn)行讀取轉(zhuǎn)換數(shù)據(jù),但是一直無(wú)法進(jìn)入中斷,什么原因?qū)е碌模?/a>

    您好!我在測(cè)試ADS8881時(shí),按照下面這個(gè)思路進(jìn)行模擬SPI,選擇三線(xiàn)無(wú)繁忙模式,將DIN直接拉高。當(dāng)CONVST有高電平變到低電平時(shí),進(jìn)入中斷進(jìn)行讀取轉(zhuǎn)換數(shù)據(jù),但是一直無(wú)法進(jìn)入中斷
    發(fā)表于 12-17 06:18

    單片機(jī)有哪些中斷類(lèi)型

    單片機(jī)中斷是指在單片機(jī)執(zhí)行程序的過(guò)程,當(dāng)外部設(shè)備或內(nèi)部條件發(fā)生某個(gè)特定事件時(shí),能夠暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行一個(gè)特定的服務(wù)程序(稱(chēng)
    的頭像 發(fā)表于 10-17 18:12 ?1858次閱讀

    ARM處理器的異常中斷響應(yīng)過(guò)程

    ARM處理器的異常中斷響應(yīng)是嵌入式系統(tǒng)設(shè)計(jì)中一個(gè)至關(guān)重要的環(huán)節(jié),它確保了系統(tǒng)在面對(duì)內(nèi)部或外部事件時(shí)能夠穩(wěn)定、可靠地運(yùn)行。
    的頭像 發(fā)表于 09-10 11:18 ?1574次閱讀

    TC397 UART接收中斷只會(huì)進(jìn)入兩次,為什么?

    world發(fā)送兩次hello world,這一串?dāng)?shù)據(jù)已經(jīng)超出2字節(jié),但是中斷進(jìn)入兩次。數(shù)據(jù)卻已經(jīng)全部寫(xiě)入到了FIFO這是為什么
    發(fā)表于 06-04 09:26

    STM32G030不能再次進(jìn)入串口中斷的原因?

    在使用串口時(shí)數(shù)據(jù)發(fā)送完畢 將串口設(shè)置為外部中斷,然后MCU進(jìn)入停止模式。在觸發(fā)外部喚醒后,進(jìn)入外部觸發(fā)中斷 ,再次初始化串口后,再接收串口數(shù)據(jù)時(shí),不能再次
    發(fā)表于 05-17 10:38

    請(qǐng)問(wèn)Arduino Due是如何進(jìn)入串口中斷?

    今天在移植Arduino的時(shí)候,一直不明白Due是如何進(jìn)入串口中斷的。Due是在串口中斷接收字符,并將其存儲(chǔ)。有下面的代碼: void USARTClass::IrqHandler(
    發(fā)表于 05-17 07:16

    串口中斷程序進(jìn)入了總線(xiàn)錯(cuò)誤中斷怎么解決?

    中斷程序 void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { ch
    發(fā)表于 05-15 07:16

    STM8進(jìn)入halt模式后由EXTI中斷喚醒,程序無(wú)法繼續(xù)正常運(yùn)行下去的原因?

    大家好,我現(xiàn)在有一個(gè)問(wèn)題請(qǐng)教: 1. 我的STM8S103K3在執(zhí)行完相關(guān)任務(wù)后進(jìn)入halt模式,在進(jìn)入之前我設(shè)置了幾個(gè)EXTI中斷 2. 中斷服務(wù)函數(shù)
    發(fā)表于 05-15 06:40

    stm32帶freertos如何進(jìn)入芯片的sleep模式?

    大家好,我在使用stm32F105時(shí),不使用freertos時(shí),芯片可以正常進(jìn)入退出sleep模式。但是加入freertos以后,我將一樣的代碼,放在默認(rèn)任務(wù),卻進(jìn)入sleep以后,直接又退出
    發(fā)表于 05-10 07:07

    請(qǐng)問(wèn)有沒(méi)有什么方法減少STM8進(jìn)入中斷的時(shí)間?

    變低退出變高 2.第一個(gè)字節(jié)中斷接收,后面字節(jié)在中斷查詢(xún)接收:這個(gè)是第一個(gè)字節(jié)用中斷接收,后面字節(jié)在中斷里面查詢(xún)接收,綠色的是時(shí)鐘,黃色
    發(fā)表于 05-07 08:00