精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

高端芯片中中斷系統的基本操作方法

嵌入式開發愛好者 ? 來源:嵌入式開發愛好者 ? 作者:嵌入式開發愛好者 ? 2022-12-06 09:34 ? 次閱讀

大家好,我是ST。

今天主要和大家聊一聊,如何使用高端芯片的中斷系統的方法。

第一:中斷的基本簡介

中斷系統是一個處理器重要的組成部分,中斷系統極大的提高了CPU的中斷執行效率。芯片本身也有中斷向量表,中斷向量表也是在代碼的最前面。A7內核有8個異常中斷,這8個異常中斷的中斷向量表如圖:

1f87d83a-74b5-11ed-8abf-dac502259ad0.png

中斷向量表中都是中斷服務函數的入口地址,因此芯片有什么中斷都是可以從中斷向量表中看出來的。難道A7系列只有7個中斷嗎?顯然是不可能的。A內核的CPU所有的外部中斷都屬于這個IRQ中斷,當任意一個外部中斷發生的時候都觸發這個IRQ中斷。在IRQ中斷服務函數里面就可以讀取指定的寄存器來判斷發生的具體是什么中斷,進而根據具體的中斷做出相應的處理。

1faf2322-74b5-11ed-8abf-dac502259ad0.png

在左側都是Software0_IRQn~PMU_IRQ2_IRQ都是外設IRQ中斷,中斷任意一個發生的時候IRQ中斷都會被觸發,需要在IRQ中斷服務函數中判斷究竟是哪個中斷發生了,然后再做出具體的處理。

常用的復位中斷和IRQ中斷,需要編寫這兩個中斷的中斷服務函數,稍后會講解如何編寫對應的中斷服務函數。首先要來編寫中斷向量表:

.global _start
_start:
ldrpc,=Reset_Handler/*復位中斷
ldr pc, =Undefined_Handler /* 未定義指令中斷 */
ldrpc,=SVC_Handler/*SVC(Supervisor)中斷*/
ldrpc,=PrefAbort_Handler/*預取終止中斷*/
ldrpc,=DataAbort_Handler/*數據終止中斷*/
ldrpc,=NotUsed_Handler/*未使用中斷*/
ldrpc,=IRQ_Handler/*IRQ中斷*/
ldrpc,=FIQ_Handler/*FIQ(快速中斷)未定義中斷*/
/* 復位中斷 */ 
Reset_Handler:
/*復位中斷具體處理過程*/
/*未定義中斷*/
Undefined_Handler:
ldrr0,=Undefined_Handler
bxr0
/*SVC中斷*/
SVC_Handler:
ldrr0,=SVC_Handler
bxr0
/*預取終止中斷*/
PrefAbort_Handler:
ldrr0,=PrefAbort_Handler
bxr0
/*數據終止中斷*/
DataAbort_Handler:
ldrr0,=DataAbort_Handler
bxr0
/*未使用的中斷*/
NotUsed_Handler:


ldrr0,=NotUsed_Handler
bxr0
/* IRQ 中斷!重點!!!!!*/
IRQ_Handler:
/*復位中斷具體處理過程*/

/*FIQ中斷*/
FIQ_Handler:
ldrr0,=FIQ_Handler
bxr0

中斷服務函數都是用匯編編寫的,我們實際需要編寫的只有復位中斷服務函數 Reset_Handler 和 IRQ 中斷服務函數 IRQ_Handler,其它的中斷沒有用到,所以都是死循環。

第二:GIC控制器介紹

GIC是ARM公司給Cortex-A內核提供的一個中斷控制器,類似Cortex-M內核中的NVIC。目前有4個版本:V1~V4,V1是最老的版本,已經廢棄。GIC V2 是給 ARMv7-A 架構使用的,比如 Cortex-A7、Cortex-A9、Cortex-A15 等,V3 和 V4 是給 ARMv8-A/R 架構使用的,也就是 64 位芯片使用的。GIC V2 最多支持 8 個核。ARM 會根據 GIC 版本的不同研發出不同的 IP 核,那些半導體廠商直接購買對應的 IP 核即可,比如 ARM 針對 GIC V2 就開發出了 GIC400 這個中斷控制器 IP 核。當 GIC 接收到外部中斷信號以后就會報給 ARM 內核,但是ARM 內核只提供了四個信號給 GIC 來匯報中斷情況:VFIQ、VIRQ、FIQ和IRQ,他們之間關系如圖。

1fd28470-74b5-11ed-8abf-dac502259ad0.png

GIC接收眾多的外部中斷,然后對其處理,最終就只通過四個信號報給ARM內核,這四個信號的含義如下:

VFIQ:虛擬快速 FIQ。VIRQ:虛擬外部 IRQ。FIQ:快速中斷 IRQ。IRQ:外部中斷 IRQ。VFIQ 和 VIRQ 是針對虛擬化的,我們不討論虛擬化,剩下的就是 FIQ 和 IRQ 了。

1fe70148-74b5-11ed-8abf-dac502259ad0.png

GIC將眾多的中斷源分為三類:

①、SPI(Shared Peripheral Interrupt),共享中斷,顧名思義,所有 Core 共享的中斷,這個是最常見的,那些外部中斷都屬于 SPI 中斷(注意!不是 SPI 總線那個中斷) 。比如按鍵中斷、串口中斷等等,這些中斷所有的 Core 都可以處理,不限定特定 Core。

②、PPI(Private Peripheral Interrupt),私有中斷,我們說了 GIC 是支持多核的,每個核肯定有自己獨有的中斷。這些獨有的中斷肯定是要指定的核心處理,因此這些中斷就叫做私有中斷。

③、SGI(Software-generated Interrupt),軟件中斷,由軟件觸發引起的中斷,通過向寄存器GICD_SGIR 寫入數據來觸發,系統會使用 SGI 中斷來完成多核之間的通信

總結:高端芯片中斷系統非常復雜,分析到這里還有很多細節沒有分析,等到下回分解,感興趣的可以研究一下。中斷系統對后面靈活使用功能非常有用。

審核編輯:湯梓紅

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

    關注

    68

    文章

    19160

    瀏覽量

    229115
  • 中斷系統
    +關注

    關注

    1

    文章

    96

    瀏覽量

    61006
  • 高端芯片
    +關注

    關注

    0

    文章

    23

    瀏覽量

    3755

原文標題:高端芯片中中斷系統的基本操作方法

文章出處:【微信號:嵌入式開發愛好者,微信公眾號:嵌入式開發愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于CX2016A的操作方法

    朋友們,請問有誰操作CX26016A這個芯片嗎?它的操作方法是什么?還有那個遙控器又是怎么回事?謝謝大家了
    發表于 04-03 15:55

    GPIO引腳操作方法概述

    :原則 - 不能影響到其他位三、STM32F103的GPIO操作方法1、看原理圖確定引腳2、再看芯片手冊(1)時鐘使能(2)設置GPIOB0為GPIO、用作輸出(3)怎么設置GPIOB0的輸出電平?四、STM32F103的LED編程1、怎么訪問寄存器?2、編寫L
    發表于 01-20 07:38

    RK3288的GPIO操作方法是什么

    GPIO寄存器的操作方法有哪幾種呢?RK3288的GPIO操作方法是什么?
    發表于 03-09 07:38

    PCB應力應變測試操作方法

    PCB應力應變測試操作方法
    發表于 06-12 22:22

    控溫/恒溫烙鐵操作方法及使用說明

    控溫/恒溫烙鐵操作方法及使用說明 一.
    發表于 04-18 00:17 ?8626次閱讀

    EWB的基本操作方法

    EWB的基本操作方法 1.創建電路(1)元器件操作  元件選用:打開元件庫欄,移動鼠標到需要的元件圖形上,按下左鍵,將元件符
    發表于 03-05 16:10 ?2.7w次閱讀
    EWB的基本<b class='flag-5'>操作方法</b>

    智能儀表組態操作方法評述

    智能儀表 的應用方興未艾,其組態操作方法多種多樣。看似儀表的使用細節問題,確是設計中所容易忽略的。本文試就該問題進行探討評述,并重點對智能流量計幾種常用組態操作方法
    發表于 07-21 15:36 ?43次下載

    工業烤箱操作方法及異常現象排除

    工業烤箱操作方法及異常現象排除
    發表于 08-23 16:26 ?2765次閱讀

    iphone遠程控制電腦的操作方法

    iphone遠程控制電腦的操作方法
    發表于 02-18 12:53 ?1.3w次閱讀
    iphone遠程控制電腦的<b class='flag-5'>操作方法</b>

    PROTEL鋪銅操作方法

    PROTEL鋪銅操作方法----鋪銅實用技巧,有用的資料。
    發表于 03-11 15:33 ?0次下載

    獨立按鍵操作方法

    慧凈HL-1 配套C實驗例程100例【實驗11】獨立按鍵操作方法),很好的C51學習資料程序。
    發表于 03-21 17:01 ?4次下載

    Altium designer阻值圖輸出的詳細操作方法

    阻值圖輸出的詳細操作方法
    發表于 01-08 15:41 ?0次下載

    電子測力計的操作方法

    電子測力計正確操作方法
    發表于 04-17 15:57 ?2583次閱讀

    光幕傳感器工作原理及操作方法

    本文首先接介紹了光幕傳感器工作原理,其次介紹了光幕傳感器操作方法,最后介紹了光幕傳感器操作方法
    發表于 10-12 08:51 ?9892次閱讀

    AD18操作方法

    AD18操作方法
    發表于 03-28 15:04 ?0次下載