FreeRTOS中断

1.PRIMASK和FAULTMASK寄存器

有时候为了执行严格的时序,需要暂时屏蔽所有中断,这是可以使用PRIMASK。PRIMASK可以屏蔽除复位,MNI和HardFault之外的所有中断。

FAULTMASK比PRIMASK更严格,连HardFault都可以屏蔽。

2.BASEMASK对中断的屏蔽更灵活一些,可以屏蔽优先级低于某一阀值的中断,这个阀值就是通过BASEMASK设置。

3.中断配置宏

configPRIO_BITS:配置MCU使用几位优先级,例如STM32使用的是4位,则设置成4;

configLIBRARY_LOWEST_INTERRUPT_PRIORITY: 设置最低优先级,例如configPRO_BITS=4,则有16级优先级,那么最低优先级为15,此宏应配置成15.

configKERNEL_INTERRUPT_PRIORITY:此宏配置内核中断优先级,用来设置PendSV和滴答定时器中断优先级,其定义是:

#define configKERNEL_INTERRUPT_PRIOPRTY    (configLIBRARY_LOWEST_INTERRUPT_PRIORITY <<(8-configPRIO_BITS))

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY: 此宏用来配置FreeRTOS能管理的最高优先级,例如此宏配置成5,那么0-4优先级不受系统管理,系统无法对其屏蔽等操作。5-15级优先级才能受系统管理。

configMAX_SYSCALL_INTERRUPT_PRIORITY: 其定义是:

#define configMAX_SYSCALL_INTERRUPT_PRIORITY   (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))

4.FreeRTOS中断开关

系统的开关操作是通过两个宏定义实现:

portENABLE_I

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值