【FreeRTOS】3.STM32移植-中断管理理论

STM32提供了中断管理的嵌套向量中断控制器(NVIC)

Cotex-M3和M4最多支持240+的IRQ,一个不可屏蔽中断(NMI),一个滴答定时器中断和多个系统异常。

CM3中,数字越小,优先级越高。三个系统的中断为负数,优先级最高。 支持3个固定的高优先级和多达256级的可编程优先级,支持128抢占。绝大多数芯片会精简设计,裁掉低端的有效位。如果使用三位表达优先级,低的5位会被裁掉,读值都是0.

在这里插入图片描述

7到3,对应0到4。STM32只用了高四位表示优先级。

裸机实现一般用的事组2优先级,即7,6表示抢占优先级,5,6表示子优先级

FreeRTOS推荐组4,也就是[7:4]都表示抢占优先级,即一共有16级优先级,0-15,越小优先级越高。
在这里插入图片描述

FreeRTOS中设置PendSV和Systick中断。

UCOS操作PRIMASK控制出NMI和硬件fault之外的中断。

FreeRTOS操作BASEPRI寄存器,控制的中断。屏蔽某一段阈值后的中断,如写入0x60,即屏蔽0x60到0xF0优先级的中断,运行0x00到0x50的中断

在这里插入图片描述
FreeRTOS管理5到15的中断,0到4优先级的任务不能使用os的API函数。

在这里插入图片描述
中断测试:

开中断:portENABLE_INTERRUPTS() // 开启5-15的中断

关中断:portDISBLE_INTERRUPTS() // 关闭5-15的中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值