91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

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

高端芯片中中斷系統(tǒng)的基本操作方法

嵌入式開發(fā)愛好者 ? 來源:嵌入式開發(fā)愛好者 ? 作者:嵌入式開發(fā)愛好者 ? 2022-12-06 09:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,我是ST。

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

第一:中斷的基本簡介

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

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

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

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

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

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

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


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

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

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

第二:GIC控制器介紹

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

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

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

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),軟件中斷,由軟件觸發(fā)引起的中斷,通過向寄存器GICD_SGIR 寫入數(shù)據(jù)來觸發(fā),系統(tǒng)會使用 SGI 中斷來完成多核之間的通信

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

審核編輯:湯梓紅

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

    關(guān)注

    68

    文章

    19899

    瀏覽量

    235421
  • 中斷系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    96

    瀏覽量

    61408
  • 高端芯片
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    3878

原文標(biāo)題:高端芯片中中斷系統(tǒng)的基本操作方法

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    關(guān)于CX2016A的操作方法

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

    GPIO引腳操作方法概述

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

    RK3288的GPIO操作方法是什么

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

    PCB應(yīng)力應(yīng)變測試操作方法

    PCB應(yīng)力應(yīng)變測試操作方法
    發(fā)表于 06-12 22:22

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

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

    EWB的基本操作方法

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

    智能儀表組態(tài)操作方法評述

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

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

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

    PROTEL鋪銅操作方法

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

    獨立按鍵操作方法

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

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

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

    電子測力計的操作方法

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

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

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

    AD18操作方法

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

    multisim的基本界面與操作方法

    電子發(fā)燒友網(wǎng)站提供《multisim的基本界面與操作方法.pdf》資料免費下載
    發(fā)表于 06-24 16:53 ?0次下載
    主站蜘蛛池模板: 天天上天天干 | 日韩乱轮 | 久久久免费 | 黄色午夜 | 色成人综合 | 在线观看黄a | 亚洲综合国产一区二区三区 | 四虎在线最新地址公告 | 91插插视频 | 五月婷婷六月丁香 | 五月婷婷丁香 | 久久免费精品 | 欧美三级在线观看视频 | 一本大道香蕉大vr在线吗视频 | 午夜精 | 日本黄色电影在线 | 久久青草国产手机看片福利盒子 | 欧美高清激情毛片 | 国产毛片农村妇女系列 | sss在线play| qvod高清在线成人观看 | 在线成人| 国产精品成人va在线观看入口 | 加勒比一到三区 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 欧美精品亚洲网站 | 天天插视频 | 色婷婷5月 | 色综合久久综合欧美综合图片 | 人色网| 三级在线观看视频网站 | 亚洲欧美视频在线播放 | 欧美啪啪小视频 | 不卡一区二区在线观看 | 欧美日一区 | 婷婷综合久久中文字幕蜜桃三 | 久久久久女人精品毛片九一 | 毛片大全免费 | 无遮挡高清一级毛片免费 | 天天干夜夜玩 | 青青操久久 |