FreeRTOS中断优先级测试

目录

资源配置

测试方案

易出 bug

测试代码


资源配置

1、定时器3中断优先级为3

2、定时器4中断优先级为4

3、FreeRTOS中断配置

OS系统管理不高于中断优先级4的中断。

#ifdef __NVIC_PRIO_BITS  /* __NVIC_PRIO_BITS 已经在stm32f1xx.h里面定义为4 */
    #define configPRIO_BITS               __NVIC_PRIO_BITS
#else
    #define configPRIO_BITS               4
#endif
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY       	0xF //定义内核中断优先级的,决定了可以有多少个优先级
#define configKERNEL_INTERRUPT_PRIORITY         ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )


#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    4  //系统可管理的最高中断优先级 ,中断优先级等于低于此值的,会被屏蔽
#define configMAX_SYSCALL_INTERRUPT_PRIORITY     ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )

测试方案

1、定时器3溢出中断中闪烁led1

2、定时器4溢出中断中闪烁led2

3、通过实时仿真,控制任务中标志位,操作:关闭中断,开启中断

易出 bug

通过以下方式关闭中断后 ,不能使用vTaskDelay,或者带有vTaskDelay的delay_ms

portDISABLE_INTERRUPTS();          //关闭中断

portENABLE_INTERRUPTS();          //打开中断

否则造成portDISABLE_INTERRUPTS失效现象。

测试代码

8-FreeRTOS模板-中断测试.rar: (访问密码:1666)https://url48.ctfile.com/f/33868548-915327345-070a97?p=1666
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫中眸zc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值