您当前的位置: 首页 > 

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

FreeRTOS第五节——中断配置和临界段

鱼香ROS 发布时间:2019-07-04 01:34:41 ,浏览量:0

一、中断介绍

我所使用的是的STM32F407内核是Cortex-M4内核,支持的中断有240个IRQ(中断请求)、1个是不可屏蔽的中断(NMI)、STM32F407内核是Cortex-M4处理器、1个是Systick(滴答定时器)定时器中断和多个系统异常。

1.中断优先级 中断是有优先级的,有优先级就会可能被打断,被打断就会出现中断嵌套的现象。中断优先级位数支持8位,但是芯片的生产厂家为了精简,不会全部实现,比如STM32一共4位,也就是有24=16级

2.优先级配置寄存器 优先级配置寄存器是8位宽,STM32把优先级分为高低两段:抢占优先级(分组优先级)和亚优先级(子优先级),所以怎么比较优先级呢,就是先比较分组优先级,如果分组优先级相同就比较亚优先级。 所以我们来看一下关于优先级分组,一共5组

                        ((LP) == NVIC_LP_SLEEPONEXIT))
/**
  * @}
  */

/** @defgroup MISC_Preemption_Priority_Group 
  * @{
  */

#define NVIC_PriorityGroup_0         ((uint32_t)0x700) /*!< 0 bits for pre-emption priority
                                                            4 bits for subpriority */
#define NVIC_PriorityGroup_1         ((uint32_t)0x600) /*!< 1 bits for pre-emption priority
                                                            3 bits for subpriority */
#define NVIC_PriorityGroup_2         ((uint32_t)0x500) /*!< 2 bits for pre-emption priority
                                                            2 bits for subpriority */
#define NVIC_PriorityGroup_3         ((uint32_t)0x400) /*!< 3 bits for pre-emption priority
                                                            1 bits for subpriority */
#define NVIC_PriorityGroup_4         ((uint32_t)0x300) /*!< 4 bits for pre-emption priority
                                                            0 bits for subpriority */

在使用FreeRTOS的时候,一般配置为NVIC_PriorityGroup_4,也就是4位抢占位,无亚优先级,之所以这么做是因为RTOS没有处理亚优先级

3.中断屏蔽寄存器 为什么需要终端屏蔽寄存器,当我们要执行一些不能被打断的,时序性很强的的操作的时候,就需要进行中断屏蔽寄存器,将中断进行屏蔽。 这三个寄存器是PRIMASK、FAULTMASK、BASEPRI

4.FreeRTOS的中断配置


#define configPRIO_BITS       		4      //4位的优先级位
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY			15              //配置最低的优先级        
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY	   5             //可管理的最大优先级 ,高于5的优先级不归RTOS管理
#define configKERNEL_INTERRUPT_PRIORITY 		( configLIBRARY_LOWEST_INTERRUPT_PRIORITY             
关注
打赏
1666092100
查看更多评论
0.1625s