历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2019年08月23日 | stm32 SCB->AIRCR 寄存器和中断优先级寄存器使用理解

2019-08-23 来源:eefocus

参考:


Cortex M3权威指南(中文).pdf


STM32F4xx中文参考手册.pdf


STM32F4开发指南-寄存器版本_V1.1.pdf


https://blog.csdn.net/rng_uzi_/article/details/90762767


记住:抢占和响应的值越小级别越高。


首先stm32的中断有240个,中断优先级分两级抢占和响应。两种级别,规则如下,需要记住


高抢占可以打断低抢占


高响应不能打断低响应(同一抢占级,处理内部的优先级)

中断7:抢占:2响应:0


中断3:抢占:2响应:1


同抢占级别,同时发生中断,响应级别的高先执行,(不是打断)


中断6:抢占:3:响应0


上面例子中的中断 3 和中断 7 都可以打断中断 6 的中断。而中断 7 和中断 3 却不可以相互

打断!


设置抢占和响应级别


 SCB->AIRCR 寄存器和IP寄存器


首先两者联系,SCB->AIRCR 寄存器的10:8位bit,决定了,IP寄存器4:7bit的高四位的抢占与响应位的分配


读一读关于IP寄存器的描述,子优先级就是响应优先级


那么SCB->AIRCR 寄存器的10:8位bit怎么决定这个分配呢?


AIRCR 寄存器的10:8位,设置几位抢占,几位响应。举例如下


AIRCR寄存器8:10与IP寄存器4:7

  AIRCR寄存器8:10 IP寄存器4:7  

0 111 抢占:0bit,响应:4bit  

1 110 抢占:1bit,响应:3bit  

2 101 抢占:2bit,响应:2bit  

3 100 抢占:3bit,响应:1bit  

4 011 抢占:4bit,响应:0bit  

 怎么理解这个表呢?


AIRCR寄存器8:10是111,表示7,即ip寄存器的第四位到第七位为止是响应级(从0开始),本来就ip寄存器的4:7bit,那4,5,6,7bit,都表示响应级。


AIRCR寄存器8:10是100,表示4,ip寄存器的第四位到第四位表示响应级。即一位表示响应级


实例代码  0x05FA0000 看上面图片表D13


  SCB->AIRCR = 0x05FA0000 | 0x400;  //  04h=0100b  中断优先级分组 抢占:响应=3:1


那么最多就是0:15级抢占,就是15个中断可相互打断,即011,没有响应级  ,4组


如果全是响应,那么哪个高,那个先发生,先执行哪个。即111,第七位以内都是响应级,4:7bit都表示,0组


举例:这是正点原子外部中断实验的优先级设置代码,两位的优先级,4,5,即101,第五位以内都是响应级


MY_NVIC_Init(3,2,EXTI2_IRQn,2); //抢占3,子优先级2,组2

MY_NVIC_Init(2,2,EXTI3_IRQn,2); //抢占2,子优先级2,组2    

MY_NVIC_Init(1,2,EXTI4_IRQn,2); //抢占1,子优先级2,组2    

MY_NVIC_Init(0,2,EXTI0_IRQn,2); //抢占0,子优先级2,组2

这里设置为组2,即:AIRCR寄存器的8:10bit,101。则IP寄存器4:7bit,第6,7bit为设置抢占优先级,4,5bit设置响应优先级


那么就是,4级抢断,4种响应。所以所有中断的级别都没有超过2^2=4。只有0,1,2,3级。


应用:


  SCB->AIRCR = 0x05FA0000 | 0x400;  //中断优先级分组 抢占:响应=3:1


8,9,10bit,为100,ip寄存器高四位的4位是响应,5,6,7位是抢占


ip寄存器,8bit寄存器,只用了高四位,111抢占,1响应。


2^3=8级抢断,2级响应

    

  NVIC->IP[39] = 0xf0; //最低抢占优先级,最低响应优先级1111


39号中断,最高级中断,没有中断的能打断。


参考手册表49,查相应中断的位置。



 NVIC->ISER[1] |= (1<<(39-32)); //使能中断线39,也就是usart3中断


256个中断,每个ISER,32位寄存器,控制32个中断。需要8个ISER,即ISER[8]寄存器组。


39号中断,在ISER[1],32,33,34,335,36,37,38,39。第七位置一


39-32=7

推荐阅读

史海拾趣

台湾兆欣(EMTEK)公司的发展小趣事

兆欣深知品质和服务对于企业发展的重要性。他们始终坚持高品质的生产标准,确保每一件产品都符合客户的期望。同时,兆欣还提供了周到的售前咨询和售后服务,为客户提供了全方位的支持。这种以客户为中心的经营理念赢得了客户的广泛赞誉和信任。

Elektron公司的发展小趣事

Elektron公司的故事始于1942年,由威利·科伯以Elektron物理技术设备工厂Kerber的名称成立。当时,该公司主要生产基于汞蒸气整流器的固定电池电源和船用电池充电器。这些产品在市场上取得了良好的反响,为公司的发展奠定了坚实的基础。在随后的几年里,Elektron不断扩大产品范围,开始涉足汽车行业的电池充电器以及焊接和切割工艺的电源等领域。

聚洵(Gainsil)公司的发展小趣事

Elektron公司一直注重技术研发和创新投入,致力于在行业中保持领先地位。公司不断推出具有创新性和领先性的产品,如高性能的电池充电器、先进的焊接和切割设备等。这些产品的推出不仅提高了公司的市场竞争力,也推动了整个行业的发展和进步。同时,Elektron还积极参与行业标准的制定和推广工作,为行业的健康发展做出了重要贡献。

艾谱科(Epticore)公司的发展小趣事

艾谱科公司的创立源于其创始人对电子行业未来发展的独到见解。在21世纪初,随着数字化和智能化技术的飞速发展,创始人意识到电子行业即将迎来一场技术革命。他带领团队深入研究新兴技术,并成功开发出一款具有划时代意义的电子元件——高效能芯片。这款芯片凭借其出色的性能和稳定性,迅速获得了市场的认可,为艾谱科公司的发展奠定了坚实的基础。

Hi-Tech Resistors Pvt Ltd公司的发展小趣事

艾谱科公司的创立源于其创始人对电子行业未来发展的独到见解。在21世纪初,随着数字化和智能化技术的飞速发展,创始人意识到电子行业即将迎来一场技术革命。他带领团队深入研究新兴技术,并成功开发出一款具有划时代意义的电子元件——高效能芯片。这款芯片凭借其出色的性能和稳定性,迅速获得了市场的认可,为艾谱科公司的发展奠定了坚实的基础。

American Power Devices Inc公司的发展小趣事

近年来,电子行业面临着巨大的变革,新技术、新产品层出不穷。为了应对这一挑战,APD公司积极调整战略,加大在新能源、物联网等领域的投入。同时,公司还注重人才培养和引进,通过搭建良好的人才梯队,为公司的创新发展提供了有力保障。

问答坊 | AI 解惑

智能车资料下载

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 顶顶!!!  …

查看全部问答>

s3c2410触摸屏程序中对外接晶体管控制的问题

《ARM Linux入门与实践》一书当中,关于触摸屏的那一节有几个地方不理解。 该程序的说明是:“代码并没有使用S3C2410A中的触摸屏控制器,而是通过直接控制FPIO的4个晶体管的导通和截止” P220: void Wait_Touch(void) {     XMON_O ...…

查看全部问答>

请问vc6编译的程序能在wince4.2上用吗?

如何调试呢?平台已经有人做了,我需要在上面做应用程序,请问能用vc6写吗?是不是编译成release版本直接下进去呢?还是可以编译成debug然后调试呢? …

查看全部问答>

请问能否仅通过430的串口往里面烧写程序?

请问能否仅通过430的串口往里面烧写程序? 谢谢! 搜了一下,有很多卖BSL的,除了需要TXD、RXD外,还需要一些别的脚。 有没有这么一种软件?当430的串口与计算机串口通过MAX232之类的芯片一接,在电脑上运行这个软件,直接就把程序烧进去了。…

查看全部问答>

自己做的分享下

刚做完的两路DS18B20,分享下…

查看全部问答>

12864中文显示乱码!!!

是这样的,我是用串行方式写的代码,上电后发现显示中文字符会乱码。英文和数字则显示正常,不知道怎么回事 [ 本帖最后由 冷板凳 于 2012-9-25 15:50 编辑 ]…

查看全部问答>

【晒心得】TI EZ430-CHRONOS-433 无线手表

昨天收到手表,今天戴了一整天,现在说说我的体验心得。(写的比较乱,跟大家交流分享)     这么大一个联邦快递,同事都说这个快递费都要好贵,再加上整个套件不单单只有一个手表,还有个MSP-eZ430仿真器(该仿真器只支持二线仿真)和 ...…

查看全部问答>

PCB设计中如何防静电释放?

在PCB里面静电是有的,不过很少会伤到PCB,跟做PCB的附产业贴片不一样。电子原计件就非常注重这一块。 主要采取的方法有,一:配戴防静电手套。                      &n ...…

查看全部问答>

这个LCD是什么型号?

拆了个建行的U盾: 想用其LCD,但又不知道型号、引脚分配。 哪位知道,高额悬赏! 回复有奖! …

查看全部问答>