cortex m3核心中斷

2021-10-03 14:44:42 字數 897 閱讀 2914

m3核心中有乙個r/w「中斷暫存器陣列」,該陣列記錄了外部從0到239個中斷的名字pri_0-239,中斷暫存器位址,中斷的優先順序(8位,stm32用了其中的高4位,復位之後是0)。如下:

另外還有乙個應用中斷控制與復位暫存器r/w「aircr」,這裡面記錄了優先順序分組方法[10:8],對應著前面陣列暫存器的8位優先順序大小分配方式。

[10:8]:有八種值,對應陣列暫存器[7:0]的分配方式。

[10:8]=:8種分配方式

[7:0]=假如

方法0: 無搶占優先順序 ,7:0全部表示子優先順序

方法1:第0位表示搶占,。 則第7:1位表示子優先順序

方法2:第1:0表示搶占。 ,則第7:2表示子優先順序..

方法7:第6:0表示搶占優先順序,則第7表示子優先順序

方法8:7:0全部表示搶占 無子優先順序

stm裡面只用到7:4位,五種方法;則

方法0:無搶占。 第7:4全部表示子

方法1:第4位表示搶占,第7:5表示子優先順序

方法2:第5:4表示搶占, 第7:6子

方法3: 6:4搶占,。 第7表示子

方法4:7:4全部表示搶占。 無子優先順序

復位陣列暫存器10:8位0,則表示分組方式是:

方法0:0搶占,7:4全部位子優先順序(0-0xff16個優先順序)

比如,[10:8]=1,表示陣列暫存器中[7:0]中的高4位有效位[7:6:5:4]中的是以一位表示子優先順序數目(一位可以表示2種優先順序),另外三位表示搶占優先順序數目(三位可以表示8種搶占優先順序)。

Cortex M3核心異常與外部中斷剖析

本文所有的測試是基於stm32f103測試的,因為stm32f103是cortex m3核心的晶元,而且恰好我手裡有這個晶元,所以就用它了。為了清晰明了,全部使用暫存器方式測試。在使用cortex m3系列核心晶元的時候必須掌握其中的nvic中斷向量控制器。必須搞清楚其中的每乙個細節。nvic管理2...

Cortex M3異常筆記

異常型別 cortex m3編號為1 15對應系統異常,大於等於16的全部是核心級額外部中斷,除個別異常 復位,nmi,硬fault 的優先順序被定死之外,其他異常優先順序都是可以程式設計的。如果乙個發生的異常不能即刻響應,就稱它被 懸起 pending 少數異常時不能被懸起的。乙個異常被懸起的原因...

Cortex M3復位序列

在離開復位狀態後,cm3 做的第一件事就是讀取下列兩個32 位整數的值 從位址 0x0000,0000 處取出msp 的初始值。從位址 0x0000,0004 處取出pc 的初始值 這個值是復位向量,lsb 必須是1。然後從這個值所對應的位址處取指。請注意,這與傳統的arm 架構不同 其實也和絕大多...