色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Cortex-M0中斷控制和系統(tǒng)控制

安芯教育科技 ? 來源:極術(shù)社區(qū) ? 作者:極術(shù)社區(qū) ? 2022-04-24 11:20 ? 次閱讀

每一個(gè)外部中斷都有一個(gè)對(duì)應(yīng)的優(yōu)先級(jí)寄存器,Cortex-M0中NVIC-IPR共有8個(gè)寄存器,而每個(gè)寄存器管理4個(gè)IRQ中斷,所以M0的IRQ中斷源最多只支持32個(gè),再加上16個(gè)內(nèi)核中斷,也就是說M0最多48個(gè)中斷源。

8dcc7092-c2f1-11ec-bce3-dac502259ad0.png

8de1c0be-c2f1-11ec-bce3-dac502259ad0.png

Cortex-M0采用Armv6-M架構(gòu),優(yōu)先級(jí)寄存器配置位有8位,但是有效位只有最高2位,這個(gè)地方很多人使用了Cortex-M3后一直也認(rèn)為Cortex-M0也是最高3或4位有效位,在arm官方資料中有對(duì)比兩個(gè)版本的差別。因此Cortex-M0可編程優(yōu)先級(jí)有4個(gè),加上3個(gè)固定的優(yōu)先級(jí)(復(fù)位、NMI、HardFault),Cortex-M0總共有7個(gè)中斷優(yōu)先級(jí)。

8df7cdaa-c2f1-11ec-bce3-dac502259ad0.png

Cortex-M0內(nèi)核的中斷優(yōu)先級(jí)寄存器是以最高位(MSB)對(duì)齊的,并且只支持字傳輸,每次訪問都會(huì)同時(shí)涉及4個(gè)中斷優(yōu)先級(jí)寄存器。見下圖:

8e104fd8-c2f1-11ec-bce3-dac502259ad0.png

因?yàn)锽it0 - Bit5沒有使用,所以如果沒有進(jìn)行寫操作讀出都為0。

由于不同的 Cortex-M 系列,其中斷優(yōu)先級(jí)是不一樣的,所以在 CMSIS 庫中的頭文件中可以查看優(yōu)先級(jí)的數(shù)量 \_\_NVIC\_PRIO\_BITS。

中斷優(yōu)先級(jí)寄存器的編程應(yīng)該在中斷使能之前,其通常是在程序開始時(shí)完成的。arm官方資料提示應(yīng)該避免在中斷使能之后改變中斷優(yōu)先級(jí),因?yàn)檫@種情況的結(jié)果在ARMv6-M系統(tǒng)結(jié)構(gòu)是不可預(yù)知的,并且不被Cortex-M0處理器支持。Cortex-M3/M4處理器的情況又有所不同,他們都支持中斷優(yōu)先級(jí)的動(dòng)態(tài)切換。Cortex-M3處理器和Cortex-M0處理器的另外一個(gè)區(qū)別是,Cortex-M3訪問中斷優(yōu)先級(jí)寄存器時(shí)支持字節(jié)或半字傳輸,因此可以每次只設(shè)置一個(gè)寄存器。如果需要改變優(yōu)先級(jí),程序中需要關(guān)閉中斷后再重新設(shè)置中斷優(yōu)先級(jí)寄存器。

在 Cortex-M內(nèi)核中,一個(gè)中斷的優(yōu)先級(jí)數(shù)值越低,邏輯優(yōu)先級(jí)卻越高。比如,中斷優(yōu)先級(jí)為2的中斷可以搶占中斷優(yōu)先級(jí)為3的中斷,但反過來就不行。換句話說,中斷優(yōu)先級(jí)2比中斷優(yōu)先級(jí)3的優(yōu)先級(jí)更高。

Cortex-M0處理器對(duì)中斷嵌套的支持無需任何軟件干預(yù),如果MCU已經(jīng)在運(yùn)行一個(gè)中斷,而有了新的更高優(yōu)先級(jí)的中斷請(qǐng)求,正在運(yùn)行的中斷將會(huì)被暫停,轉(zhuǎn)而執(zhí)行更高優(yōu)先級(jí)的中斷,高優(yōu)先級(jí)中斷執(zhí)行完成后又回到原來的低優(yōu)先級(jí)中斷。如果出現(xiàn)兩個(gè)同一優(yōu)先級(jí)的中斷,則是判斷誰開始發(fā)起中斷請(qǐng)求,MCU會(huì)先執(zhí)行同一優(yōu)先級(jí)中首先發(fā)起請(qǐng)求的中斷。

MM32F0130系列中斷向量表:


	

typedefenumIRQn{ NonMaskableInt_IRQn=-14,///

設(shè)置中斷優(yōu)先級(jí)的流程:先讀一個(gè)字,再修改對(duì)應(yīng)字節(jié),最后整個(gè)字寫回。

1.1 C代碼

	

void__NVIC_SetPriority() { unsignedlongtemp;//定義一個(gè)臨時(shí)變量 temp=*(volatileunsignedlong)(0xE000E400);//讀取IRP0值 temp&=(0xFF00FFFF|(0xC0<

1.2 匯編代碼

在程序中可以一次設(shè)置多個(gè)中斷優(yōu)先級(jí)。


	

void__NVIC_SetPriority() { LDRR0,=0xE000E100;//設(shè)置使能中斷寄存器地址 MOVSR1,#0x4;//中斷#2 STRR1,[R0];//使能#2中斷 LDRR0,=0xE000E200;//設(shè)置掛起中斷寄存器地址 MOVSR1,#0x4;//中斷#2 STRR1,[R0];//掛起#2中斷 LDRR0,=0xE000E280;//設(shè)置清除中斷掛起寄存器地址 MOVSR1,#0x4;//中斷#2 STRR1,[R0];//清除#2的掛起狀態(tài) }

1.3 CMSIS標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)函數(shù)

	

//設(shè)置中斷優(yōu)先級(jí) __STATIC_INLINEvoid__NVIC_SetPriority(IRQn_TypeIRQn,uint32_tpriority) { if((int32_t)(IRQn)>=0){ NVIC->IP[_IP_IDX(IRQn)]=((uint32_t)(NVIC->IP[_IP_IDX(IRQn)]&~(0xFFUL<SHP[_SHP_IDX(IRQn)]=((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)]&~(0xFFUL<

這里的參數(shù)IRQn為中斷ID號(hào),可以為負(fù),也可以為正。當(dāng)IRQn為負(fù)時(shí),設(shè)置系統(tǒng)異常的優(yōu)先級(jí),當(dāng)IRQn大于等于0時(shí),設(shè)置外設(shè)中斷優(yōu)先級(jí),芯片廠商會(huì)提供中斷向量表IRQn\_Type,應(yīng)用層只需要調(diào)用即可;priority是0、1、2、3,函數(shù)內(nèi)部會(huì)自動(dòng)移位到對(duì)應(yīng)的優(yōu)先級(jí)最高2位。


	

方法一: voidNVIC_SetPriority(TIM1_CC_IRQn,3);//設(shè)置#14中斷的優(yōu)先級(jí)為0xC0 方法二: voidNVIC_Config(void) {NVIC_InitTypeDefNVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel=TIM1_CC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority=3; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); }

設(shè)置好中斷優(yōu)先級(jí)后,用戶還可以讀取當(dāng)前已經(jīng)設(shè)置的中斷優(yōu)先級(jí)。


審核編輯 :李倩


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

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120232
  • Cortex-M0
    +關(guān)注

    關(guān)注

    4

    文章

    124

    瀏覽量

    38675

原文標(biāo)題:技術(shù)分享 | Cortex-M0中斷控制和系統(tǒng)控制(二)

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TMS320x280x、2801x、2804x DSP系統(tǒng)控制中斷參考指南

    電子發(fā)燒友網(wǎng)站提供《TMS320x280x、2801x、2804x DSP系統(tǒng)控制中斷參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-17 16:02 ?0次下載
    TMS320x280x、2801x、2804x DSP<b class='flag-5'>系統(tǒng)控制</b>和<b class='flag-5'>中斷</b>參考指南

    使用功率控制器件的汽車防抱死制動(dòng)系統(tǒng)控制

    電子發(fā)燒友網(wǎng)站提供《使用功率控制器件的汽車防抱死制動(dòng)系統(tǒng)控制.pdf》資料免費(fèi)下載
    發(fā)表于 09-29 09:50 ?0次下載
    使用功率<b class='flag-5'>控制</b>器件的汽車防抱死制動(dòng)<b class='flag-5'>系統(tǒng)控制</b>

    請(qǐng)問stm32的cortex-m0怎么樣?

    為什么都說STM32專業(yè)做M3 ,M4,M0要找芯唐和NXP,難道因?yàn)镾T的CORTEX-M0芯片不穩(wěn)定還是有其他問題?
    發(fā)表于 05-15 06:31

    微半導(dǎo)體推出CMS32M67電機(jī)控制系列微控制

    微半導(dǎo)體(深圳)股份有限公司近日宣布,其最新研發(fā)的CMS32M67電機(jī)控制系列微控制器已正式推向市場(chǎng)。這款微控制器基于先進(jìn)的Arm
    的頭像 發(fā)表于 05-11 14:58 ?1271次閱讀

    普冉半導(dǎo)體推出一款基于32位ARM Cortex-M0+內(nèi)核的微控制

    PY32F071單片機(jī)是一款基于32 位 ARM? Cortex? - M0+內(nèi)核的微控制器,由普冉半導(dǎo)體推出。
    的頭像 發(fā)表于 04-30 11:24 ?786次閱讀
    普冉半導(dǎo)體推出一款基于32位ARM <b class='flag-5'>Cortex-M0</b>+內(nèi)核的微<b class='flag-5'>控制</b>器

    求助,關(guān)于cortex-M3的壓棧問題求解

    我們都知道cortex-m3中斷時(shí)是硬件自動(dòng)壓棧的,這樣可以減少中斷響應(yīng)和恢復(fù)時(shí)間。中斷硬件壓棧的寄存器為xPSR, PC, LR, R12, R0
    發(fā)表于 04-28 08:18

    微半導(dǎo)推出基于Arm Cortex-M0的CMS32M67電機(jī)控制系列微控制

    微半導(dǎo)體(深圳)股份有限公司(以下簡(jiǎn)稱:微半導(dǎo) 股票代碼:688380)近日宣布,正式推出基于Arm Cortex-M0+內(nèi)核全新升級(jí)的CMS32M67電機(jī)
    的頭像 發(fā)表于 04-08 10:13 ?876次閱讀
    <b class='flag-5'>中</b>微半導(dǎo)推出基于Arm <b class='flag-5'>Cortex-M0</b>的CMS32<b class='flag-5'>M</b>67電機(jī)<b class='flag-5'>控制</b>系列微<b class='flag-5'>控制</b>器

    TOM0 channel5中斷異常的原因?

    正常情況下ADC中斷和TOM0 channel5中斷都是正常的,當(dāng)出現(xiàn)異常時(shí),ADC中斷正常,TOM0 channel5
    發(fā)表于 01-25 06:33

    32位 ARM? Cortex?-M0+ 微控制器PY32L020系列數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《32位 ARM? Cortex?-M0+ 微控制器PY32L020系列數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-19 16:58 ?3次下載

    用N76E003做BLDC控制,如果用掩碼把PWM0屏蔽掉,還能產(chǎn)生PWM0中斷嗎?

    如果用掩碼把PWM0屏蔽掉,還能產(chǎn)生PWM0中斷嗎,我用N76E003做BLDC控制
    發(fā)表于 01-17 07:25

    N76E003開了一個(gè)定時(shí)器0中斷和串口0中斷,兩個(gè)中斷打開后,串口發(fā)送數(shù)據(jù)無法進(jìn)入中斷的原因?

    N76E003開了一個(gè)定時(shí)器0中斷和串口0中斷,兩個(gè)中斷打開后,串口發(fā)送數(shù)據(jù)無法進(jìn)入中斷,單獨(dú)使
    發(fā)表于 01-17 06:44

    M0516中斷優(yōu)先級(jí)怎么設(shè)置?

    新唐M0516中斷優(yōu)先級(jí)的設(shè)置,有沒有示例,沒找到相關(guān)接口,謝謝!
    發(fā)表于 01-16 07:25

    ES32M0502系列電機(jī)控制MCU新品發(fā)布

    ES32M0502系列MCU產(chǎn)品,采用全新SoC架構(gòu)及軟硬件協(xié)同優(yōu)化設(shè)計(jì),支持Cortex-M0在96MHz主頻運(yùn)行,配合軟件算法硬件加速器,可以達(dá)到國外Cortex-M3電機(jī)控制MC
    的頭像 發(fā)表于 01-08 10:41 ?537次閱讀
    ES32<b class='flag-5'>M</b>0502系列電機(jī)<b class='flag-5'>控制</b>MCU新品發(fā)布

    s3c2410中斷控制模塊的中斷源狀態(tài)寄存器是?

    S3C2410是一款由三星電子公司設(shè)計(jì)的具有多種功能的嵌入式處理器。其中的中斷控制模塊用于管理系統(tǒng)中斷請(qǐng)求和中斷服務(wù)程序。在S3C2410
    的頭像 發(fā)表于 01-05 17:28 ?718次閱讀

    stm32中斷怎么處理的

    STM32是一款非常強(qiáng)大的微控制器系列,具有豐富的外設(shè)和功能。中斷是STM32非常重要的部分,能夠幫助我們提高系統(tǒng)的響應(yīng)速度和效率。本文將詳細(xì)介紹STM32
    的頭像 發(fā)表于 01-02 17:35 ?2570次閱讀
    主站蜘蛛池模板: 69日本人xxxx16—18| 亚洲日本乱码中文论理在线电影| 亚欧洲乱码视频一二三区| 永久午夜福利视频一区在线观看| av女优快播| 九九免费高清在线观看视频| 欧美久久无码AV麻豆| 亚洲AV怡红院AV男人的天堂| vr亚洲成年网址在线观看| 国精产品一区一区三区有限| 人性本色联盟| 淫品色影院| 国语自产二区高清国语自产拍| 欧美视频精品一区二区三区| 91chinesevideo| 国产高清免费观看| 嫩草影院地址一二三| 一本道色播| 国产在线观看免费观看不卡| 日本人奶水中文影片| 99久久亚洲| 久久资源365| 一本色道久久综合亚洲AV蜜桃| 国产成人精品男人免费| 欧美又粗又大AAAA片| 97伦理97伦理2018最新| 久久高清一级毛片| 亚洲日韩有码无线免费| 国产精品你懂的在线播放| 日本综艺大尺度无删减版在线 | china野外18:19| 内射白浆一区二区在线观看| 伊人国产在线观看| 精品久久综合1区2区3区激情| 亚洲 欧美 国产 视频二区| 国产福利秒拍weipai.ee| 双性大乳浪受噗呲噗呲h总| 都市妖奇谈有声| 同时和两老师双飞| 国产精品久久久久久久久久免费| 双性诱受灌满哭求饶BL|