1.中斷設(shè)置使能和清除寄存器器的分析
地址 名稱 描述
0xE000 E100 SETENA 設(shè)置使能中斷0到31,寫1將位置1,寫0無作用
0xE000 E180 CLRENA 寫1將位置0,禁能中斷,寫0無作用
__ASM void SET_CLEAR_IRQ(void)
{
LDR R0, =0xE000E100
MOVS R1, #0x4
STR R1, [R0]
LDR R0, =0xE000E180
MOVS R1, #0x4
STR R1, [R0]
}
初始狀態(tài)是這樣的`
這里寫圖片描述
這里第一個(gè)STR R1,[R0]是設(shè)置使能外部中斷2的。執(zhí)行后:
這里寫圖片描述
第二個(gè)STR R1,[R0]是設(shè)置除能外部中斷2的。執(zhí)行后:
這里寫圖片描述
可以看到SETENA,CLRENA寄存器所對應(yīng)的地址的內(nèi)容是相同的,都是中斷寄存器的內(nèi)容,表示哪個(gè)中斷是開啟的。
只是寫1后有不同的行為,SETENA寫1,置位對應(yīng)的位,CLRENA寫1,清除對應(yīng)的位。
使用兩個(gè)寄存器,一個(gè)用來設(shè)置,一個(gè)用來清除,這樣的操作的優(yōu)勢在于使能或者除能中斷只需要一個(gè)寫操作就可以完成。
如果使用一個(gè)簡單的讀/寫寄存器來完成操作,則使能或者除能中斷需要讀-修改-寫的過程。
如果在讀寫過程中,發(fā)生了中斷,而中斷中改變了該寄存器的值,那么中斷返回后,繼續(xù)寫操作,那么ISR對寄存器的修改有可能會被覆蓋。
使用C語言:
*((volatile unsigned long *)(0xE000E100))=0x04;//使能中斷2
*((volatile unsigned long *)(0xE000E180))=0x04;//除能中斷2
CMSIS提供了以下函數(shù)來使能或者除能中斷:
void NVIC_EnableIRQ(IRQn_Type_IRQn);
void NVIC_DisableIRQ(IRQn_Type_IRQn);
2.中斷掛起和清除掛起
當(dāng)一個(gè)終端發(fā)生了,卻又無法立即處理(比如處理器正在處理更高優(yōu)先級的中斷),這個(gè)中斷請求就會被掛起。掛起狀態(tài)保存在一個(gè)寄存器中。如果中斷變?yōu)楫?dāng)前優(yōu)先級最高的中斷,中斷得到處理,那么硬件就會清除中斷請求,也可以手動(dòng)清除。
地址 名稱 描述
0xE000E200 SETPEND 設(shè)置中斷0到31的掛起狀態(tài),寫1將置1,寫0無作用
0xE000E280 CLRPEND 清除中斷0到31的掛起狀態(tài),寫1置位,寫0無作用
匯編代碼和C語言訪問參考上面的中斷使能,除能,將地址替換一下就行了。
CMSIS提供了以下函數(shù)來訪問中斷掛起狀態(tài)寄存器:
void NVIC_SetPendingIRQ(IRQn_Type_IRQn);//設(shè)置一個(gè)中斷的掛起狀態(tài)
void NVIC_ClearPendingIRQ(IRQn_Type_IRQn);//清除
void NVIC_GetPendingIRQ(IRQn_Type_IRQn);//返回true表示中斷掛起狀態(tài)為1
3.中斷優(yōu)先級
Cortex-M0(+)每一個(gè)外部中斷都是有一個(gè)對應(yīng)的優(yōu)先級寄存器(設(shè)置內(nèi)部異常優(yōu)先級的寄存器和這個(gè)不同),每個(gè)優(yōu)先級設(shè)置占用1個(gè)字節(jié),但是只使用最高的2個(gè)位。Cortex-M3使用的是1個(gè)字節(jié)中的高4位,分為兩組,響應(yīng)優(yōu)先級和子優(yōu)先級。Cortex-M0(+)是沒有子優(yōu)先級設(shè)置的。為什么使用高位做優(yōu)先級,主要是為了不同處理器間移植,不會導(dǎo)致中斷優(yōu)先級發(fā)生順序的顛倒。
Cortex-M0中的NVIC寄存器只支持字傳輸,這樣每次修改寄存器都會同時(shí)涉及4個(gè)中斷優(yōu)先級寄存器。
對于CM0,應(yīng)該避免中斷使能之后改變優(yōu)先級設(shè)定。改變的結(jié)果在ARMv6-M體系結(jié)構(gòu)上是不可預(yù)知的。而CM3支持中斷優(yōu)先級的動(dòng)態(tài)切換,且支持中斷優(yōu)先級設(shè)置寄存器的字節(jié)或者半字傳輸。
設(shè)置中斷#2的優(yōu)先級為0xC0(采用高2位,優(yōu)先級為3),使用C語言:
(訪問可能會被隨時(shí)且不被當(dāng)前程序所知道的改變的內(nèi)容,需要使用volatile)
unsigned int temp;
temp=*((volatile unsigned int *)(0xE000E400));
temp=temp&(0xFF00FFFF)|(0xC0<<16);
*((volatile unsigned int*)(0xE000E400))=temp;
CMSIS中的設(shè)置函數(shù):
void NVIC_SetPriority(IRQn_Type_IRQn,uint32_t priority);//設(shè)置中斷或異常的優(yōu)先級
void NVIC_GetPriority(IRQn_Type_IRQn);//返回中斷或異常的優(yōu)先級
4.異常屏蔽寄存器(PRIMASK)
在對時(shí)間敏感的應(yīng)用,需要在一段較短的時(shí)間內(nèi)禁止所有中斷。CM0通過一個(gè)PRIMASK寄存器來屏蔽除了NMI和硬件錯(cuò)誤異常的其他所有中斷和系統(tǒng)異常。
PRIMASK只有一位可用。當(dāng)為1時(shí),禁止中斷和異常,為0時(shí)使能。
設(shè)置方法:
MOVS R0 , #1
MSR PRIMASK, R0
或者
CPSIE i;//清除PRIMASK
CPSID i;//設(shè)置PRIMASK
CMSIS中
void _enable_irq(void);
void _disable_irq(void);
這兩個(gè)函數(shù)會被編譯為CPS指令。
注意時(shí)間敏感的程序完成后,需要清除PRIMASK。中斷返回并不會清除PRIMASK。
上一篇:ARM 中斷--IRQ and FIQ配置--外部配置
下一篇:最后一頁
推薦閱讀
史海拾趣
為了進(jìn)一步提升品牌影響力和市場份額,CANDD公司開始實(shí)施國際化戰(zhàn)略。公司首先在歐洲市場設(shè)立了分公司,并成功打開了歐洲市場的大門。隨后,公司又進(jìn)軍亞洲市場,通過與當(dāng)?shù)仄髽I(yè)的合作,逐漸在亞洲市場站穩(wěn)了腳跟。隨著國際化戰(zhàn)略的深入實(shí)施,CANDD公司的品牌知名度和市場份額不斷攀升。
在競爭激烈的電子行業(yè)中,品質(zhì)是企業(yè)生存和發(fā)展的關(guān)鍵。Amecon Magnetics公司始終將品質(zhì)管理放在首位,建立了嚴(yán)格的質(zhì)量管理體系,確保從原材料采購到產(chǎn)品出廠的每一個(gè)環(huán)節(jié)都符合高標(biāo)準(zhǔn)的質(zhì)量要求。這種對品質(zhì)的執(zhí)著追求使得公司的產(chǎn)品贏得了客戶的廣泛好評和信賴,為公司樹立了良好的品牌形象。
ConnectBlue公司成立于2000年,當(dāng)時(shí)正值無線通信技術(shù)快速發(fā)展的時(shí)期。公司創(chuàng)始人憑借對無線技術(shù)的深刻理解和市場需求的敏銳洞察,決定專注于無線系統(tǒng)的研發(fā)和生產(chǎn)。起初,公司面臨資金緊張和技術(shù)難題,但創(chuàng)始團(tuán)隊(duì)?wèi){借堅(jiān)韌不拔的精神,克服了一個(gè)又一個(gè)困難,成功開發(fā)出了一系列具有競爭力的無線模塊產(chǎn)品。
在十九世紀(jì)80年代,丹納赫集團(tuán)面對日益嚴(yán)峻的市場競爭,開始推行以精益生產(chǎn)為核心的全新運(yùn)營方式。這種管理方式不僅強(qiáng)化了其在行業(yè)中的領(lǐng)導(dǎo)地位,還逐漸形成了獨(dú)特的丹納赫商業(yè)系統(tǒng)(Danaher Business System,DBS)。DBS注重持續(xù)改進(jìn)、客戶導(dǎo)向和團(tuán)隊(duì)合作,成為丹納赫集團(tuán)在電子行業(yè)取得成功的關(guān)鍵因素。
隨著消費(fèi)者對家庭娛樂和智能生活的需求不斷增長,Cavium Networks 敏銳地捕捉到了這一市場趨勢。公司推出了面向消費(fèi)者市場的無線顯示解決方案 WiVu,利用最新的筆記本電腦技術(shù)如嵌入式 DisplayPort 和顯示迷你卡(DMC),為多房間和交互式應(yīng)用提供了高性能的 Wi-Fi 無線顯示解決方案。WiVu 的推出不僅滿足了消費(fèi)者對便捷、高效、高質(zhì)量的娛樂體驗(yàn)的需求,也引領(lǐng)了市場的新潮流,進(jìn)一步鞏固了 Cavium Networks 在電子行業(yè)中的地位。
在電子行業(yè)的快速發(fā)展中,Cavium Networks 公司憑借其創(chuàng)新的技術(shù)和敏銳的市場洞察力,成功推出了基于 MIPS64 的單核和雙核 OCTEON 處理器系列。這款處理器為網(wǎng)絡(luò)、無線、控制和存儲應(yīng)用提供了高度集成化和低成本的64位計(jì)算解決方案,成為當(dāng)時(shí)業(yè)界領(lǐng)先的面向下一代智能網(wǎng)絡(luò)的新型處理器。OCTEON 處理器的誕生,標(biāo)志著 Cavium Networks 在網(wǎng)絡(luò)通信領(lǐng)域的技術(shù)實(shí)力得到了進(jìn)一步提升,也為其后續(xù)的發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
使用ad7327進(jìn)行模擬信號采集(模擬信號輸出為直流電壓信號),八通道的,進(jìn)行單路采集時(shí),關(guān)閉其他不用通道,一切正常,當(dāng)八通道全部打開,輪流采集時(shí),1,3,5,7通道采集數(shù)據(jù)正常,0,2,4,6,通道干擾較大,采集的數(shù)據(jù)有跳變而且跳變幅度大,好 ...… 查看全部問答∨ |
|
人們時(shí)常看到戶外動(dòng)畫廣告,一會兒從左到右地顯示,一會兒又從右到左地顯示,這就是流水燈效果,其特征是將想要顯示的畫面切割成N份,且每次只讓其中的一個(gè)畫面顯示,同時(shí)讓肉眼能夠看得清楚。 假設(shè)先讓其中的一幅畫面顯示,接著“立刻”點(diǎn)亮與其 ...… 查看全部問答∨ |
|
近幾年來,隨著國內(nèi)外大型網(wǎng)絡(luò)運(yùn)營商對網(wǎng)絡(luò)環(huán)境的建設(shè)和改造,以及ISDN、DDN、VPN、ATM等技術(shù)的應(yīng)用和推廣,視頻會議系統(tǒng)的使用環(huán)境也變得越來越好。因此無論是通訊行業(yè)還是IT行業(yè),都對視頻會議領(lǐng)域重新進(jìn)行關(guān)注,視音頻編解碼技術(shù)趨于成熟,視頻 ...… 查看全部問答∨ |
|
SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了??? SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了??? 急,萬分感謝. 另外,哪里有USB轉(zhuǎn)SDIO的芯片??給介紹一下?… 查看全部問答∨ |
|
求一發(fā)包工具,可以發(fā)送大于長度為1518的數(shù)據(jù)包 目前常規(guī)的發(fā)包工具如sniffer發(fā)送最長的包長度為1518(包含CRC),但加入vlan后數(shù)據(jù)包長度變長了,現(xiàn)需對加入vlan的數(shù)據(jù)包進(jìn)行測試,有沒有哪個(gè)發(fā)包工具可以發(fā)送大于長度為1518的數(shù)據(jù)包???… 查看全部問答∨ |
msp430g2231 驅(qū)動(dòng)紅外線HS0038 的程序誰有 我看到51單片機(jī) keilc的程序是這樣的 自己不會改void IR_IN() interrupt 2 using 0{ unsigned char j,k,N=0; EX1 = 0; //EX1 = 0為外部中斷允許 delay(15); if (IRIN==1) { EX1 =1; & ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 意法半導(dǎo)體推出先進(jìn)的 1600 V IGBT,面向高性價(jià)比節(jié)能家電市場
- EDPF-NT+分散控制系統(tǒng)網(wǎng)絡(luò)防護(hù)解決方案
- 基于PLC控制的易驅(qū)變頻器在布袋除塵器上的應(yīng)用
- 如何利用伺服自動(dòng)化實(shí)現(xiàn)成本降低和產(chǎn)能最大化?
- 壓力傳感器有哪些抗干擾措施?
- 破局!補(bǔ)盲dToF固態(tài)激光雷達(dá)輪番“出手”,禾賽FT120也要靠邊
- 利用正壓送風(fēng)壓力傳感器自動(dòng)控制火災(zāi)風(fēng)口壓力
- 多個(gè)傳感器間相互位置關(guān)系校準(zhǔn)方法
- 樓宇自控BA系統(tǒng)傳感器有哪些?
- 常見壓力傳感器工業(yè)原理匯總
- EEworld獨(dú)家原創(chuàng)視頻:大話TI CC2650,邀你來看!
- 觀看TI IOT解決方案研討會 答題即可贏取更多精美好禮!
- 【EEWORLD第三十九屆】2012年06月社區(qū)明星人物揭曉!
- 永不過時(shí)的物聯(lián)網(wǎng)解決方案 Intel帶你6的飛起來!
- ADI有獎(jiǎng)下載活動(dòng)之25:ADI汽車傳感器和傳感器接口解決方案
- Vicor 更好的供電方式提升無人機(jī)飛行時(shí)間飛行半徑及有效載荷
- 考眼力:高速數(shù)字設(shè)計(jì)的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- TI 最新電容式觸控套件,免費(fèi)嘗鮮中
- TI有獎(jiǎng)直播|借助Sitara™ AM263x MCU 創(chuàng)造電氣化的未來
- 英倒戈后,德國重申:5G建設(shè)不會將華為排除在外
- 為何美國要用政府補(bǔ)貼重振半導(dǎo)體業(yè)?
- 北京君正預(yù)計(jì)上半年凈利潤為261.11萬元-1405.29萬元
- 歷經(jīng)55年而敏捷不減,ADI怎樣成長為模擬“巨無霸”?
- 轉(zhuǎn)讓底價(jià)110億元!TCL科技成中環(huán)集團(tuán)混改項(xiàng)目最終受讓方
- 上交所:終止了云知聲科創(chuàng)板IPO審核
- 2021年河南重點(diǎn)建設(shè)項(xiàng)目名單出爐:寒武紀(jì)等多個(gè)項(xiàng)目入列
- vivo宣布進(jìn)入羅馬尼亞與捷克市場
- 數(shù)字經(jīng)濟(jì)筑路者、時(shí)代領(lǐng)先者,中興通訊為行業(yè)注入了5G之心
- 機(jī)構(gòu)稱2020年中國智能腕間穿戴市場保持正的增長
- 閑置一款CYCLONE IV EP4CE15F17C8開發(fā)板
- 為什么電流和磁傳感器對TWS(真無線耳機(jī))的設(shè)計(jì)至關(guān)重要?
- 學(xué)習(xí)MSP430如何開篇
- 一款妖折的開發(fā)項(xiàng)目
- file_max錯(cuò)誤
- EEWORLD大學(xué)堂----在Atmel Studio 6中建構(gòu)一個(gè)用于GCC的新C語言設(shè)計(jì)項(xiàng)目
- STM32-Nucleo詳細(xì)的開發(fā)環(huán)境搭建過程
- 【FPGA助學(xué)系列—實(shí)例3—跑表2】
- TO-277封裝的汽車級肖特基二極管
- 電壓量程等比衰減,懇請大佬前來指點(diǎn)