RTOS最少有一个任务,什么任务都没给的时候就执行空闲任务,想让一个任务一直执行,把优先级设置成和空闲任务的优先级相同 */ #define configIDLE_SHOULD_YIELD 1 //为1时空闲任务放弃CPU使用权给其他同优先级的用户任务 /* 任务通知 */ #define configUSE_TASK_NOTIFICATIONS 1 //为1时开启任务通知功能,默认开...
FreeRTOS 中的断言函数 configASSERT()和标准 C 中的断言函数 assert()是一样的,如果断言函数的 参数为 0 时将触发断言函数的执行。 FreeRTOS 的断言功能在调试阶段是非常有用的,可以有效地检查参数错误和运行中的错误,但在正式发布软件时,请将此功能关闭,因为断言功能会增加工程代码大小并降低工程执行效率。关闭...
FreeRTOS 的配置基本是通过在 FreeRTOSConfig.h 中使用“#define” 这样的语句来定义宏定义实现的。 在 FreeRTOS 的官方 demo 中,每个工程都有一个 FreeRTOSConfig.h 文件,我们在使用的时候可以参考这个文件,甚至直接复制粘贴使用。 1、“INCLUDE_”开始的宏 使用“INCLUDE_”开头的宏用来表示使能或除能 FreeRTOS...
Freertos学习:02-FreeRTOSConfig.h 描述 FreeRTOS内核是高度可定制的,使用配置文件FreeRTOSConfig.h进行定制。每个FreeRTOS应用都必须包含这个头文件,用户根据实际应用来裁剪定制FreeRTOS内核。这个配置文件是针对用户程序的,而非内核,因此配置文件一般放在应用程序目录下,不要放在RTOS内核源码目录下。 在下载的FreeRTOS文...
FreeRTOS源码中的每一个demo程序都有属于自己的FreeRTOSConfig.h文件,如果一下配置选项被省略,那这些设置为默认值; 用户通过修改FreeRTOSConfig.h头文件中的宏定义,从而删减系统的模块,设置任务栈空间大小,设置系统分配的堆大小等等,下面配合源码进行详细解析。
首先,我们需要明确一个问题,FreeRTOSConfig.h是一个用户级别的文件,不属于内核文件。每个用户可以有不同的FreeRTOSConfig.h。 FreeRTOS作为一个可高度配置的实时内核,其绝大多数配置选项都体现在FreeRTOS.h(注意是FreeRTOS.h不是FreeRTOSConfig.h)中。为什么这么说?打开FreeRTOS.h看看就知道了,这个...
configUSE_TIME_SLICING定义为1时,使能时间片调度。 configUSE_TIME_SLICING定义为0时,关闭时间片调度。 当存在有同等优先级的任务时,开启时间片调度,同等优先级的任务会轮流运行,也就是将时间切片,让同一优先级的任务轮流运行。 任务选择方法 FreeRTOS在选择下一个要执行的任务时,提供要两种方法,通过configUSE_PORT...
1.0 打开stm32cube后点击pinout&configuration->middleware->freertos 2.0 选择freertos与单片机使用的接口标准,CMSISI_V1或CMSISI_V2任选即可,两者的差异请参考【待补充】。ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard)。
FreeRTOS操作系统配置文件FreeRTOSConfig.h 一.前言 FreeRTOSConfig.h文件中有许多宏定义,这些宏定义就像开关一样,为1就是开,为0就是关。里面宏定义挺多的。在这里就挑几个稍微重要一点的讲。其它的也有注释,可以去博主的资源里面下载。也是免费的。
configKERNEL_INTERRUPT_PRIORITY(以下简称KERNEL)用于设置 FreeRTOS 内核本身使用的中断优先级。因为FreeRTOS内核中断不应当抢占用户使用的中断,所以KERNEL这个宏需要设置为最低优先级(1111xxxx)。 从上边那个图可知,实际上KERNEL这个宏是用于配置内核中断PendSV和Systick的。PendSV和Systick其实是Cortex-M3内核的两个系统...