目录
前言
在使用os前,我们都知道任务调度都是依靠一个Systick的中断(os的内核中断之一)进行任务切换的,既然是中断那么此时优先级是怎么样的配置的配置成优先级最高还是最低还是随意,以及配置原理是怎样的。
os内核中断优先级大小
首先,关于内核的中断优先级配置,我们可以从手册中发现,内核中断的优先级应当配置为最低优先级。
os内核中断配置宏
打开官方文档(FreeRTOSConfig.h),可以看到关于中断配置的宏有三个:
/* Interrupt nesting behaviour configuration. */
#define configKERNEL_INTERRUPT_PRIORITY [dependent of processor]
#define configMAX_SYSCALL_INTERRUPT_PRIORITY [dependent on processor and application]
#define configMAX_API_CALL_INTERRUPT_PRIORITY [dependent on processor and application]
下面我们来看下这三个宏应该如何配置以及对应的含义。先看下面这句话:
configMAX_API_CALL_INTERRUPT_PRIORITY is a new name for configMAX_SYSCALL_INTERRUPT_PRIORITY that is used by newer ports only. The two are equivalent.很明显的理解我们需要配置的就是这两个了:
#define configKERNEL_INTERRUPT_PRIORITY [dependent of processor]
#define configMAX_SYSCALL_INTERRUPT_PRIORITY [dependent on processor and application]
1、第一个configKERNEL_INTERRUPT_PRIORITY 这个意思是配置os的内核中断优先级,