【FreeRTOS】【STM32】03 FreeRTOSConfig.h头文件简介与修改

本文详细介绍了FreeRTOSConfig.h头文件的作用,如何在工程中添加及配置,涉及抢占式调度、任务调度选项、内存管理、中断处理等内容,以及针对STM32平台的具体使用指导。

基于[野火®]《FreeRTOS%20内核实现与应用开发实战—基于STM32》.pdf

FreeRTOSConfig.h头文件是FreeRTOS各项功能的打开与关闭

FreeRTOSConfig.h头文件简介

之前也说过了,FreeRTOSConfig.h文件可以添加在工程中任意文件夹,只需要在路径中添加好了就行。
该头文件对裁剪整个FreeRTOS 所需的功能的宏均做了定义。

这边是野火电子添加注释版本的FreeRTOSConfig.h,添加了一些中文注释,并且把相关的头文件进行分类,方便查找宏定义已经阅读,详见[野火®]《FreeRTOS%20内核实现与应用开发实战—基于STM32》.pdf

(1)代码清单中的这类标号在[野火®]《FreeRTOS%20内核实现与应用开发实战—基于STM32》.pdf有具体说明

#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H

//针对不同的编译器调用不同的 stdint.h 文件
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) (1)
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif

 //断言
 #define vAssertCalled(char,int) printf("Error:%s,%d\r\n",char,int)
 #define configASSERT(x) if((x)==0) vAssertCalled(__FILE__,__LINE__) (2)
 
 /************************************************************************
 * FreeRTOS 基础配置配置选项
 *********************************************************************/
 /* 置 1:RTOS 使用抢占式调度器;置 0:RTOS 使用协作式调度器(时间片)
 *
 * 注:在多任务管理机制上,操作系统可以分为抢占式和协作式两种。
 * 协作式操作系统是任务主动释放 CPU 后,切换到下一个任务。
 * 任务切换的时机完全取决于正在运行的任务。
 */
 #define configUSE_PREEMPTION 1 (3)
 
 //1 使能时间片调度(默认式使能的)
 #define configUSE_TIME_SLICING 1 (4)
 
 /* 某些运行 FreeRTOS 的硬件有两种方法选择下一个要执行的任务:
 * 通用方法和特定于硬件的方法(以下简称“特殊方法”)。
 *
 * 通用方法:
 * 1.configUSE_PORT_OPTIMISED_TASK_SELECTION 为 0 或者硬件不支持这种特殊方法。
 * 2.可以用于所有 FreeRTOS 支持的硬件
 * 3.完全用 C 实现,效率略低于特殊方法。
 * 4.不强制要求限制最大可用优先级数目
 * 特殊方法:
 * 1.必须将 configUSE_PORT_OPTIMISED_TASK_SELECTION 设置为 1。
 * 2.依赖一个或多个特定架构的汇编指令(一般是类似计算前导零[CLZ]指令)。
 * 3.比通用方法更高效
 * 4.一般强制限定最大可用优先级数目为 32
 * 
 一般是硬件计算前导零指令,如果所使用的,MCU 没有这些硬件指令的话此宏应该设置为 0!
 */
 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 (5)
 
 /* 置 1:使能低功耗 tickless 模式;置 0:保持系统节拍(tick)中断一直运行 */
 #define configUSE_TICKLESS_IDLE 0 (
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值