女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

基于ARM Cortex-A9中斷的過程及詳細解答

牽手一起夢 ? 來源:一口Linux ? 作者:一口Linux ? 2020-12-28 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、中斷概念

操作系統中,中斷是很重要的組成部分。出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行。

有了中斷系統才可以不用一直輪詢(polling)是否有事件發生,系統效率才得以提高。

一般在系統中,中斷控制分為三個部分:「模塊、中斷控制器處理器」。

其中模塊通常由寄存器控制是否使能中斷和中斷觸發條件等;中斷控制器可以管理中斷的優先級等,而處理器則由寄存器設置用來響應中斷。

二、GIC

作為 ARM 系統中通用中斷控制器的是 GIC(Generic Interrupt Controller),目前有四個版本,V1~V4(V2最多支持8個ARM core,V3/V4支持更多的ARM core,主要用于ARM64系統結構)。

【注意】對于一些老的ARM處理器,比如ARM11,Cortex-A8,中斷控制器一般是VIC(向量中斷控制器)。

1. GIC-400

下面以GIC-400為例,它更適合嵌入式系統,符合v2版本的GIC architecture specification。GIC-400通過AMBA(Advanced Microcontroller Bus Architecture)片上總線連接到一個或者多個ARM處理器上。

基于ARM Cortex-A9中斷的過程及詳細解答

GIC中斷控制器全局圖

從上圖可以看出, GIC 是聯系外設中斷和 CPU 的橋梁,也是各 CPU 之間中斷互聯的通道(也帶有管理功能),它負責檢測、管理、分發中斷,可以做到:

使能或禁止中斷;把中斷分組到Group0還是Group1(Group0作為安全模式使用連接FIQ ,Group1 作為非安全模式使用,連接IRQ );多核系統中將中斷分配到不同處理器上;設置電平觸發還是邊沿觸發方式(不等于外設的觸發方式);虛擬化擴展。

ARM CPU 對外的連接只有2 個中斷:「IRQ和FIQ」 ,相對應的處理模式分別是一般中斷(IRQ )處理模式和快速中斷(FIQ )處理模式。所以GIC 最后要把中斷匯集成2 條線,與CPU 對接。

GIC中斷控制器結構

分發器:負責各個子中斷使能,設置觸發方式,優先級排序,分發到哪個 CPU 上;接口:負責總的中斷的使能,狀態的維護。

2. 分發器功能

分發器的主要的作用是檢測各個中斷源的狀態,控制各個中斷源的行為,分發各個中斷源產生的中斷事件到指定的一個或者多個CPU接口上。雖然分發器可以管理多個中斷源,但是它總是把優先級最高的那個中斷請求送往CPU接口。分發器對中斷的控制包括:

(a)中斷使能或禁能控制。分發器對中斷的控制分成兩個級別,一個是全局中斷的控制(GIC_DIST_CTRL),一旦禁止了全局的中斷,那么任何的中斷源產生的中斷事件都不會被傳遞到CPU接口;另外一個級別是對針對各個中斷源進行控制(GIC_DIST_ENABLE_CLEAR),禁止某一個中斷源會導致該中斷事件不會分發到CPU接口,但不影響其他中斷源產生中斷事件的分發。(b)控制將當前優先級最高的中斷事件分發到一個或者一組CPU接口。(c)優先級控制。(d)中斷屬性設定,例如是電平觸發還是邊沿觸發。(e)中斷的設定。

分發器可以管理若干個中斷源,這些中斷源用ID來標識,我們稱之interrupt ID。

3. CPU接口功能

CPU接口主要用于和CPU進行接口。

主要功能包括:

(a)使能或者禁止CPU接口向連接的CPU提交中斷事件。對于ARM,CPU接口和CPU之間的中斷信號線是nIRQCPU和nFIQCPU。如果禁止了中斷,那么即便是分發器分發了一個中斷事件到CPU接口,但是也不會提交指定的nIRQ或者nFIQ通知CPU。(b)ackowledging中斷。CPU會向CPU接口應答中斷,中斷一旦被應答,分發器就會把該中斷的狀態從pending狀態修改成active,如果沒有后續pending的中斷,那么CPU 接口就會deassert nIRQCPU和nFIQCPU信號線。如果在這個過程中又產生了新的中斷,那么分發器就會把該中斷的狀態從pending狀態修改成pending and active。此時,CPU接口仍然會保持nIRQ或者nFIQ信號的asserted狀態,也就是向CPU通知下一個中斷。(c)中斷處理完畢的通知。當中斷處理器處理完了一個中斷的時候,會向寫CPU 接口的寄存器從而通知GIC已經處理完該中斷。做這個動作一方面是通知分發器將中斷狀態修改為deactive,另外一方面,可以允許其他的pending的中斷向CPU接口提交。(d)設定優先級掩碼。通過優先級掩碼可以mask掉一些優先級比較低的中斷,這些中斷不會通知到CPU。(e)設定中斷搶占的策略。(f)在多個中斷事件同時到來的時候,選擇一個優先級最高的通知CPU。

key中斷管理模塊圖

以上圖為例,該圖是按鍵產生的中斷信號要到達cpu所要經過的路徑。

外設中斷源有很多,通常芯片廠商會設計若干個第一級中斷控制器,進行第一次處理,key連接的是GPX1中斷控制器,寄存器EXT_INT41_MASK用于使能該中斷;GIC主要包括分排氣和cpu interface;ICDISER用于使能分派器,ICDIPTR用于將中斷信號分發給對應的cpu interface;ICCICR用于使能CPU interface;CPU上有兩個引腳irq、fiq,gic最終會連接到CPU的irq,所有寄存器配置完畢后,按鍵一旦按下,那么就會給CPU的irq發送一個中斷信號,cpu緊接著就會執行“4大步3小步”,進入中斷異常處理流程。

三、中斷分類

1. 中斷源硬件中斷(Hardware Interrupt)可屏蔽中斷(maskable interrupt)。硬件中斷的一類,可通過在中斷屏蔽寄存器中設定位掩碼來關閉。非可屏蔽中斷(non-maskable interrupt,NMI)。硬件中斷的一類,無法通過在中斷屏蔽寄存器中設定位掩碼來關閉。典型例子是時鐘中斷(一個硬件時鐘以恒定頻率—如50Hz—發出的中斷)。處理器間中斷(interprocessor interrupt)。一種特殊的硬件中斷。由處理器發出,被其它處理器接收。僅見于多處理器系統,以便于處理器間通信或同步。偽中斷(spurious interrupt)。一類不希望被產生的硬件中斷。發生的原因有很多種,如中斷線路上電氣信號異常,或是中斷請求設備本身有問題。軟件中斷(Software Interrupt)

軟件中斷SWI,是一條CPU指令,用以自陷一個中斷。由于軟中斷指令通常要運行一個切換CPU至內核態的子例程,它常被用作實現系統調用(System call)。

外部中斷I/O設備:如顯示器、鍵盤、打印機、A / D轉換器等。數據通道:軟盤、硬盤、光盤等。數據通道中斷也稱直接存儲器存取(DMA)操作中斷,如磁盤、磁帶機或CRT等直接與存儲器交換數據所要求的中斷。實時時鐘:如外部的定時電路等。在控制中遇到定時檢測和控制,為此常采用一個外部時鐘電路(可編程)控制其時間間隔。需要定時時,CPU發出命令使時鐘電路開始工作,一旦到達規定時間,時鐘電路發出中斷請求,由CPU轉去完成檢測和控制工作。用戶故障源:如掉電、奇偶校驗錯誤、外部設備故障等。產生于CPU內部的中斷源由CPU得運行結果產生:如除數為0、結果溢出、斷點中斷、單步中斷、存儲器讀出出錯等。執行中斷指令swi非法操作或指令引起異常處理。2. 中斷類型

GIC 中斷類型有3種:SGI(Software-generated interrupt)、PPI(Private peripheral interrupt )、SPI(Shared peripheral interrupt)。

SGI: SGI為軟件可以觸發的中斷,統一編號為0~15(ID0-ID7是不安全中斷,ID8-ID15是安全中斷),用于各個core之間的通信。該類中斷通過相關聯的中斷號和產生該中斷的處理器的CPUID來標識。通常為邊沿觸發。

PPI: PPI為每個 core 的私有外設中斷,統一編號為 16-31 。例如每個 CPU 的 local timer 即 Arch Timer 產生的中斷就是通過 PPI 發送給 CPU 的(安全為29,非安全為30)。

通常為邊沿觸發和電平觸發。

SPI: SPI 是系統的外設產生的中斷,為各個 core 公用的中斷,統一編號為 32~1019 ,如 global timer 、uart 、gpio 產生的中斷。通常為邊沿觸發和電平觸發。

Note:電平觸發是在高或低電平保持的時間內觸發, 而邊沿觸發是由高到低或由低到高這一瞬間觸發;在GIC中PPI和SGI類型的中斷可以有相同的中斷ID。

3. 中斷分派模式

1-N mode (SPIs using the GIC 1-N model)表示中斷可以發給所有的CPU,但只能由一個CPU來處理中斷;換句話說,這種類型的中斷有N個目標CPU,但只能由其中一個來處理;當某一個處理器應答了該中斷,便會清除在所有目標處理器上該中斷的掛起狀態。

N-N mode (PPIs and SGIs using the GIC N-N model)表示中斷可以發給所有CPU,每個CPU可以同時處理該中斷。當該中斷被某一個處理器應答了,這不會影響該中斷在其他CPU接口上的狀態。

舉兩個例子說明:

1)UART 接收到一包數據,產生了一個中斷給GIC,GIC可以將該中斷分配給CPU0-7中任何一個處理;假設該中斷分配給CPU0處理了,那么在中斷處理函數里面會把接收到的數據從UART FIFO讀出。可以想象一下,如果CPU0在讀數據時,另外一個CPU也在處理該中斷,恰巧也在讀數據,那么CPU0讀到的數據是不全的。這就是1-N model中斷,或者說SPI中斷。

2)比如CPU0給CPU1-7發送中斷,想告知對方自己正在處理某個進程A。這種場景下,CPU1-7都接收到中斷,都進入中斷處理函數,CPU1-7獲取到CPU0的信息后,在進程調度時,就可以繞開進程A,而自己調度其他進程。

注:這個例子只是說明N-N model,實際上進程調度不都全是這樣的。

4. 通用中斷處理

當GIC接收到一個中斷請求,將其狀態設置為Pending。重新產生一個掛起狀態的中斷不影響該中斷狀態。

中斷處理順序:

① GIC決定該中斷是否使能,若沒有被使能對GIC沒有影響;

② 對于每個Pending中斷,GIC決定目標處理器;

③ 對于每個處理器 ,Distributor根據它擁有的每個中斷優先級信息決定最高優先級的掛起中斷,將該中斷傳遞給目標CPU Interface;

④ GIC Distributor將一個中斷傳遞給CPU Interface后,該CPU Interface決定該中斷是否有足夠的優先級將中斷請求發給CPU;

⑤ 當CPU開始處理該異常中斷,它讀取GICC_IAR應答中斷。讀取的GICC_IAR獲取到中斷ID,對于SGI,還有源處理器ID。中斷ID被用來查找正確的中斷處理程序。

GIC識別讀過程后,將改變該中斷的狀態:

a) 當中斷狀態變為active時,如果該中斷掛起狀態持續存在或者中斷再次產生,中斷狀態將從Pending轉化為pending & active

b) 否則,中斷狀態將從pending狀態變為active

⑥ 當中斷完成中斷處理后,它需要通知GIC處理已經完成。這個過程稱為 priority drop and interrupt deactivation:

a) 總是需要向EOIR寄存器寫入一個有效的值(end of interrupt register)b) 也需要接著向GICC_DIR寫入值(deactivate interrupt register)

5. 中斷優先級

軟件可以通過給每一個中斷源分配優先級值來配置中斷優先級。優先級的值是個8位的無符號二進制數,GIC支持最小16和最大256的優先級級別。

如果GIC實現的優先級少于256,那么優先級字段的低階位為RAZ/WI。這就意味著實現的優先級字段個數范圍是4~8,如下圖所示:

Effect of not implementing some priority field bits

Note:

1)、如何確定優先級字段所支持的優先級位?通過軟件往可寫GICD_IPRIORITYn優先級字段寫入0XFF,然后回讀出該字段的值便可以確定優先級字段所支持的優先級位(因為有些位沒實現是RAZ/WI)

2)、ARM 推薦在檢查中斷優先級范圍之前先:? 對于外設中斷,軟件先禁用該中斷? 對于SGI,軟件先檢查該中斷確定為inactive

6. 中斷搶占

在一個active中斷處理完之前,CPU interface支持發送更高優先級的掛起中斷到目標處理器。這種情況必要條件如下:

該中斷的優先級高于當前CPU interface 被屏蔽的優先級該中斷的組優先級高于正在當前CPU interface處理的中斷優先級7. 中斷屏蔽

CPU interface的GICC_PMR寄存器定義了目標處理器的優先級閥值,GIC僅上報優先級高于閥值的pending中斷給目標處理器。寄存器初始值為0,屏蔽所有的中斷。

四、FS4412中斷外設-key

下面我們來分析FS4412開發板的第一個中斷設備按鍵。

1. 電路圖

key

由該電路圖可得:

按鍵k2 連接在GPX1_1引腳

控制邏輯k2 按下 ---- K2閉合 ---- GPX1_1 低電壓k2 常態 ---- K2打開 ---- GPX1_1 高電壓

以下是key2與soc的連接,

key與soc的連接

可以看到key2復用了GPIX1_1這個引腳,同時該引腳還可以作為中斷【XEINT9】使用。

順便看下GPXCON寄存器的配置

GPX1CON

由上圖所示,

GPX1CON地址為0x1100C20;key2如果要做為輸入設備,只需要將GPX1CON[7:4]設置為0x0;key2如果要做為中斷信號,只需要將GPX1CON[7:4]設置為0xf。2. key中斷處理中斷配置

key與soc的關系圖如下圖所示:

按鍵中斷寄存器配置流程

由上圖所示:

按鍵是直接連到GPIO控制器的EXT_INT_CON用來設置按鍵中斷的觸發方式,下降沿觸發GPX1CON寄存器用于設置該GPIO位中斷信號輸入EXT_INT_MASK用于使能該中斷ICDISER用于使能相應中斷到分配器ICDDCR分配器開關ICDIPTR選擇CPU接口ICCPMR設置中斷屏蔽優先級ICCICR打開CPU開關,把CPU接口內的中斷能夠送到相應的CPU清中斷

CPU處理完中斷,需要清除中斷,對于按鍵來說,有3個寄存器需要操作:

清中斷

由上圖所示:

EXT_INT41_PEND清相應的中斷源ICDICPR中斷結束后,清相應中斷標志位,此標志位由硬件置位ICCEOIR中斷執行結束,清cpu內相應的中斷號,由硬件填充3. 寄存器匯總

前面分析了按鍵連接的是GPX1_1,現在我們來看下對應的寄存器應該如何配置

【1】、GPIO控制器GPX1PUD

將GPX1_1引腳的上拉和下拉禁止

GPX1PUD[3:2]= 0b00;

GPX1CON

GPX1CON

將GPX1_1引腳功能設置為中斷功能

GPX1CON[7:4] = 0xf

EXT_INT41CON

EXT_INT41CON

配置成成下降沿觸發:

EXT_INT41CON[6:4] = 0x2

EXT_INT41_MASK

EXT_INT41_MASK

中斷使能寄存器

EXT_INT41_MASK[1] = 0b0

EXT_INT41_PEND 中斷狀態寄存器

EXT_INT41_PEND

當GPX1_1引腳接收到中斷信號,中斷發生,中斷狀態寄存器EXT_INT41_PEND 相應位會自動置1注意:中斷處理完成的時候,需要清除相應狀態位。置1清0.

EXT_INT41_PEND[1] =0b1

【2】GIC

根據外設中斷名稱EINT9來查看該中斷對應的GIC中維護的HW id。【所有的中斷源在芯片廠商設計的時候都分配了唯一的一個ID,GIC通過該ID來驅動中斷源】

查看芯片手冊(datasheet -- 9.2表)

GIC中斷源表

通過【9.2中斷源表】找到和外設中斷標示對應的中斷控制器中斷標識(GPIO有32個可被喚醒寄存器)其對應「EINT[9],中斷ID為57」,這是非常重要的,在后面的寄存器設置中起很大作用;

1) ICDISER使能相應中斷到分配器

ICDISER

ICDISER用于使能相應中斷到分配器,一個bit控制一個中斷源,一個ICDISER可以控制32個中斷源,這里INT[9] 對應的中斷ID為57,所以在ICDSER1中進行設置,57/32 =1余25,所以這里在ICDISER1第25位置一。

ICDISER.ICDISER1 |= (0x1 << 25); //57/32 =1...25 取整數(那個寄存器) 和余數(哪位)

ICDIPTR選擇CPU接口

ICDIPTR

ICDIPTR

選擇cpu

ICDIPTR寄存器每8個bit 控制一個中斷源,其中CPU0可以處理160個中斷源,所以需要40個寄存器。要選擇cpu0第一個bit必須是1。

設置SPI[25]/ID[57]由cpu0處理,57/4=16余1 所以選擇寄存器ICDIPTR14的第2個字節[15:8]。

//SPI 25 interrupts are sent to processor 0

//57/4 = 14..1 14號寄存器的[15:8]

ICDIPTR.ICDIPTR14 |= 0x01<<8;

ICDDCR使能分配器

還寄存器用于使能分配器。

ICDDCR =1;

ICCPMR優先級屏蔽寄存器,設置cpu0能處理所有的中斷。比如中斷屏蔽優先級為255,該值表示優先級最低,所有的中斷都能響應。

ICCPMRCPU0.ICCPMR = 0xFF;//設置cpu0 中斷屏蔽優先級為255 最低,所有中斷都能響應)

ICCICR 全局使能cpu0中斷處理

ICCICR

EXYNOS 4412一共有4個cpu,用4個寄存器分別來控制4個cpu,每個寄存器的bit[0]用于全局控制對應的cpu。我們選擇cpu0處理中斷,將bit[0]置1即可。

CPU0.ICCICR |= 0x1;

使能中斷到CPU。

ICCIAR

ICCIAR

當中斷發生之后,中斷的HW id值會由硬件寫入到寄存器ICCIAR[9:0]中;對于SGIs來說,多處理器環境下,CPU的interface值寫入到[12:10]中。

讀取HW id:

int irq_num;

irq_num = CPU0.ICCIAR&0x3ff; //獲取中斷號

五、代碼實現

要處理中斷異常,必須安裝異常向量表,異常的處理流程可以參考前面的文章《6. 從0開始學ARM-異常、異常向量表、swi》

1. 異常向量表基址

異常向量表地址是可以修改的,比如uboot在啟動的時候,會從flash中搬運代碼到RAM中,而flash的異常向量表地址和ram的地址肯定不一樣,所以搬運完代碼后,就必須要修改對應的異常向量表地址。

修改異常向量表的地址的需要借助協處理器指令mcr:

ldr r0,=0x40008000

mcr p15,0,r0,c12,c0,0 @ Vector Base Address Register

上述命令是將地址0x40008000設置為異常向量表的地址,關于mcr指令,我們沒有必要深究,知道即可。

RAM中異常向量表地址我們選用的是0x40008000,以下是exynos4412 地址空間分布。

exynos4412 地址分布2. 異常向量表安裝.text

.global _start

_start:

b reset

ldr pc,_undefined_instruction

ldr pc,_software_interrupt

ldr pc,_prefetch_abort

ldr pc,_data_abort

ldr pc,_not_used

ldr pc,=irq_handler

ldr pc,_fiq

reset:

ldr r0,=0x40008000

mcr p15,0,r0,c12,c0,0 @ Vector Base Address Register

init_stack:

//初始化棧

……

b main //跳轉至c的main函數

irq_handler: //中斷入口函數

sub lr,lr,#4

stmfd sp!,{r0-r12,lr}

.weak do_irq

bl do_irq

ldmfd sp!,{r0-r12,pc}^

stacktop: .word stack+4*512//棧頂

.data

stack: .space 4*512 //棧空間

中斷入口函數do_irq()

void do_irq(void)

static int a = 1;

int irq_num;

irq_num = CPU0.ICCIAR&0x3ff; //獲取中斷號

switch(irq_num)

case 57:

printf("in the irq_handler");

//清GPIO中斷標志位

EXT_INT41_PEND = EXT_INT41_PEND |((0x1 << 1));

//清GIC中斷標志位

ICDICPR.ICDICPR1 = ICDICPR.ICDICPR1 | (0x1 << 25);

break;

//清cpu中斷標志

CPU0.ICCEOIR = CPU0.ICCEOIR&(~(0x3ff))|irq_num;位

實現按鍵中斷的初始化函數key_init():

void key_init(void)

GPX1.CON =GPX1.CON & (~(0xf << 4)) |(0xf << 4); //配置引腳功能為外部中斷

GPX1.PUD = GPX1.PUD & (~(0x3 << 2)); //關閉上下拉電阻

EXT_INT41_CON = EXT_INT41_CON &(~(0xf << 4))|(0x2 << 4); //外部中斷觸發方式

EXT_INT41_MASK = EXT_INT41_MASK & (~(0x1 << 1)); //使能中斷

ICDDCR = 1; //使能分配器

ICDISER.ICDISER1 = ICDISER.ICDISER1 | (0x1 << 25); //使能相應中斷到分配器

ICDIPTR.ICDIPTR14 = ICDIPTR.ICDIPTR14 & (~(0xff << 8))|(0x1 << 8); //選擇CPU接口

CPU0.ICCPMR = 255; //中斷屏蔽優先級

CPU0.ICCICR = 1; //使能中斷到CPU

return ;

六、輪詢方式

除了中斷方式之外我們還可以通過輪詢方式讀取按鍵的信息,原理如下:

循環檢測GPX1_1引腳輸入的電平,為低電壓時,按鍵按下,為高電平時,按鍵抬起。

配置GPX1_1引腳功能為輸入,設置內部上拉下拉禁止。 GPX1.CON = GPX1.CON &(~(0xf<<4)) ;

GPX1.PUD = GPX1.PUD & ~(0x3 << 2);

按鍵消抖:按鍵按下后由于機械特性,會在極短的時間內出現電平忽0忽1,所以我們檢測到按鍵按下后,需要給一個延時,然后再判斷按鍵是不是仍然按下。

代碼實現

int main (void)

led_init();

pwm_init();

GPX1.CON = GPX1.CON &(~(0xf<<4))|0x0<<4;

while(1)

if(!(GPX1.DAT & (0x1<<1))) // 返回為真,按鍵按下

delay_ms(10);

if(!(GPX1.DAT & (0x1<<1))) //二次檢測,去抖

GPX2.DAT |= 0x1 << 7; //Turn on LED2

delay_ms(500);

beep_on();

GPX2.DAT &= ~(0x1<<7); //Turn off LED2

delay_ms(500);

while(!(GPX1.DAT & (0x1<<1)));

beep_off();

return 0;

責任編輯:gt

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

    關注

    68

    文章

    19888

    瀏覽量

    235096
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9351

    瀏覽量

    377409
  • 總線
    +關注

    關注

    10

    文章

    2959

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第十章 W55MH32中斷應用概覽

    本章講述了W55MH32中斷應用,涵蓋異常類型、NVIC介紹、優先級定義與分組,闡述中斷編程三要點(使能中斷、配置 NVIC、編寫服務函數),并強調優先級分組設置注意事項。
    的頭像 發表于 05-22 17:07 ?1021次閱讀
    第十章 W55MH32<b class='flag-5'>中斷</b>應用概覽

    微BAT32A6700系列采用高性能的ARM-Cortex M0+內核

    、8BitD/A轉換器、比較器,可編程增益放大器、LIN收發器、5V LDO。由于集成事件聯動控制器,可實現硬件模塊之間的直接連接,無需CPU的干預,比使用中斷響應速度更快。 BAT32A6700以其
    發表于 04-17 10:24

    瑞芯微RK3506(3核ARM+Cortex-A7 + ARM Cortex-M0)工業核心板選型資料

    創龍科技SOM-TL3506是一款基于瑞芯微RK3506J/RK3506B處理器設計的3核ARM Cortex-A7 + ARM Cortex-M0全國產工業核心板,主頻高達1.5GH
    的頭像 發表于 04-09 09:04 ?985次閱讀
    瑞芯微RK3506(3核<b class='flag-5'>ARM+Cortex-A</b>7 + <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex</b>-M0)工業核心板選型資料

    微BAT32A6700系列采用高性能的ARM-Cortex M0+內核

    、8BitD/A轉換器、比較器,可編程增益放大器、LIN收發器、5V LDO。由于集成事件聯動控制器,可實現硬件模塊之間的直接連接,無需CPU的干預,比使用中斷響應速度更快。 BAT32A6700以其
    發表于 03-26 09:53

    STM32中斷如此簡單(可下載)

    做這件事,當把這件事做完后你會繼續之前被打斷的工作,這個過程為一次中斷異常:一個系統本應該正常的運行,但由于某些條件使系統產生了錯誤,就會使系統運行不 正常,我們
    發表于 03-24 14:27 ?1次下載

    BAT32A337系列采用高性能的ARM-Cortex M0+的32位RISC內核

    、8Bit D/A轉換器、比較器,可編程增益放大器。由于集成事件聯動控制器,可實現硬件模塊之間的直接連接,無需CPU的干預,比使用中斷響應速度更快。 BAT32A337以其卓越的高溫穩定性和高集成度
    發表于 03-24 09:17

    TIM2輸入捕獲,DMA開啟中斷傳輸輸入捕獲數據,程序跑的過程中,DMA一直中斷,TIM6只觸發一次中斷,怎么解決?

    用TIM2捕獲輸入的數據,并且通過DMA存儲,在開啟DMA中斷同時,TIM6中斷也開啟(用于計時)。但是程序跑的過程中,DMA一直中斷,TIM6只觸發一次
    發表于 03-14 06:39

    帶四核Arm Cortex-A57和四核Arm Cortex-A53 CPU的RZ/G2H超高性能微處理器數據手冊

    具有超高處理性能的四核 Arm?Cortex?-A57(1.5GHz)和四核 Arm Cortex-A53(1.2GHz)CPU,具有 3D
    的頭像 發表于 03-12 17:59 ?654次閱讀
    帶四核<b class='flag-5'>Arm</b> <b class='flag-5'>Cortex-A</b>57和四核<b class='flag-5'>Arm</b> <b class='flag-5'>Cortex-A</b>53 CPU的RZ/G2H超高性能微處理器數據手冊

    Arm Cortex-A320 CPU助力嵌入式設備實現高能效AI計算

    Arm Cortex-A320 是目前最小型的 Armv9-A 架構 CPU。得益于該處理器的推出,開發者現在能有更多選擇決定如何處理物聯網邊緣人工智能 (AI) 工作負載。然而,面對多樣化的選擇
    的頭像 發表于 02-27 17:17 ?753次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>Cortex-A</b>320 CPU助力嵌入式設備實現高能效AI計算

    詳解Arm Cortex-A320 CPU的特性

    Arm Cortex-A320 CPU 的推出具有重要的里程碑意義。作為首個基于 Armv9 架構的超高能效 CPU,這一突破性的處理器為功耗有限的設備引入了此前僅在尖端移動計算解決方案中使用的先進功能,使其在人工智能 (AI)
    的頭像 發表于 02-27 17:13 ?1037次閱讀

    讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過中斷來讀取采樣數據,要不要先關INT0中斷呢?

    我讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過中斷來讀取采樣數據。請問在中斷服務程序,要不要先關INT0中斷呢?如
    發表于 01-13 06:11

    實際項目開發為何選擇ARM? Cortex?-M4 內核的HK32MCU?

    ?Cortex?-M4內核的HK32F407芯片的深度知識,并圍繞各類實際案例詳細解讀了如何選型,為何選擇ARM?Cortex?-M4內核的HK32MCU。航順芯片深耕32
    的頭像 發表于 10-22 17:19 ?888次閱讀
    實際項目開發<b class='flag-5'>中</b>為何選擇<b class='flag-5'>ARM</b>? <b class='flag-5'>Cortex</b>?-M4 內核的HK32MCU?

    ARM處理器的異常中斷響應過程

    ARM處理器的異常中斷響應是嵌入式系統設計中一個至關重要的環節,它確保了系統在面對內部或外部事件時能夠穩定、可靠地運行。
    的頭像 發表于 09-10 11:18 ?2006次閱讀

    基于瑞薩Arm Cortex-M85 MCU Feather SOM的解決方案

    開源社區已經從傳統的黑客聚集地逐漸擴展到家庭、辦公室以及工業應用等廣泛領域。在這個過程中,瑞薩的Arm Cortex-M85 MCU Feather SOM憑借著卓越的性能和豐富的功能,為開源硬件愛好者和專業開發者提供了強大的支
    的頭像 發表于 08-19 17:32 ?873次閱讀

    AM3517/AM3505高性能ARM Cortex-A8微處理器數據表

    電子發燒友網站提供《AM3517/AM3505高性能ARM Cortex-A8微處理器數據表.pdf》資料免費下載
    發表于 08-08 14:13 ?0次下載
    AM3517/AM3505高性能<b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-A</b>8微處理器數據表