mission critical applications that require provable dependability.*/#ifndef __FREERTOS_CONFIG_H#define__FREERTOS_CONFIG_H#include"stm32f10x.h"#include"hal_usb_1_driver.h"//针对不同的编译器调用不同的stdint.h文件,在 MDK 中,我们默认的是__CC_ARM#ifdefined(__ICCARM__) || defined(__CC_AR...
FreeRTOS内核是高度可定制的,使用配置文件FreeRTOSConfig.h进行定制。每个FreeRTOS应用都必须包含这个头文件,用户根据实际应用来裁剪定制FreeRTOS内核。这个配置文件是针对用户程序的,而非内核,因此配置文件一般放在应用程序目录下,不要放在RTOS内核源码目录下。 在下载的FreeRTOS文件包中,每个演示例程都有一个FreeRTOSConfi...
简介: 11-FreeRTOS配置函数 FreeRTOSConfig.h 2.27 configUSE_QUEUE_SETS 设置成1使能队列集功能(可以阻塞、挂起到多个队列和信号量),设置成0取消队列集功能。 2.28 configUSE_TIME_SLICING 默认情况下(宏configUSE_TIME_SLICING未定义或者宏configUSE_TIME_SLICING设置为1),FreeRTOS使用基于时间片的优先级抢占式...
#define configUSE_TIMERS 1 //启用软件定时器,在硬件定时器不够的时可以通过软件来增加定时器 #define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES-1 ) //设置最大的定时器优先级 #define configTIMER_QUEUE_LENGTH 10 //设置队列长度 #define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE *...
configKERNEL_INTERRUPT_PRIORITY(以下简称KERNEL)用于设置 FreeRTOS 内核本身使用的中断优先级。因为FreeRTOS内核中断不应当抢占用户使用的中断,所以KERNEL这个宏需要设置为最低优先级(1111xxxx)。 从上边那个图可知,实际上KERNEL这个宏是用于配置内核中断PendSV和Systick的。PendSV和Systick其实是Cortex-M3内核的两个系统...
1.0 config parameters->kernel settings 对应的FreeRTOS_Config.h文件。 上图10个红色短线标准对应FreeRTOS_Config.h的如下代码 #define configUSE_PREEMPTION 1//1表示抢占式内核,0代表协程式内核#define configCPU_CLOCK_HZ ( SystemCoreClock )//CPU时钟频率#define configTICK_RATE_HZ ((TickType_t)1000)//时...
"config"开头的宏, 用处各不相同,下面是FreeRTOSConfig.h的源码, 我会将一些重要的宏加以中文注释来...
FreeRTOS源码中的每一个demo程序都有属于自己的FreeRTOSConfig.h文件,如果一下配置选项被省略,那这些设置为默认值; 用户通过修改FreeRTOSConfig.h头文件中的宏定义,从而删减系统的模块,设置任务栈空间大小,设置系统分配的堆大小等等,下面配合源码进行详细解析。
FreeRTOS中“FreeRTOSConfig.h”配置的内容随着版本(功能)的增加而增加,也就是说随着系统功能的增加,对应需要的配置信息也响应增加了。但是系统为了兼容之前的代码,系统自身做了兼容处理。 比如:configUSE_QUEUE_SETS是属于“FreeRTOSConfig.h”中定义的选项,如果用户没有定义,则在“FreeRTOS.h”中有类似如下定义。
FreeRTOSConfig.h文件 宏定义 当宏定义了ICCARM或CCARM或GNUC时调用stdint.h并声明系统时钟SystemCoreClock。 断言 断言,以便于快速定位软件的错误。 configASSERT为提供的断言接口,可以判断是否发生错误。 vAssertCalled输出错误发生的文件、错误类型(char)和第几行(int)。