FreeRTOS 源码概述

FreeRTOS 源码概述 目录1.FreeRTOS 目录结构主要涉及2个目录CoreMiddlewares\Third_Party\FreeRTOS\Source2.核心文件FreeRTOS的最核心文件只有2个其他文件的作用也一起列表如下3.移植时涉及的文件里面有2个文件4.头文件相关4.1 头文件目录FreeRTOS需要3个头文件目录4.2 头文件列表如下5.内存管理6.入口函数源码如下7.数据类型和编程规范7.1 数据类型每个移植的版本都含有自己的portmacro.h头文件里面定义了2个数据类型TickType_tBaseType_t7.2 变量名变量名有前缀7.3 函数名7.4 宏的名通用的宏定义如下1.FreeRTOS 目录结构使用 STM32CubeMX 创建的 FreeRTOS 工程中FreeRTOS 相关的源码如下:主要涉及2个目录CoreInc 目录下的 FreeRTOSConfig.h 是配置文件Src 目录下的 freertos.c 是 STM32CubeMX 创建的默认任务Middlewares\Third_Party\FreeRTOS\Source根目录下是核心文件这些文件是通用的portable 目录下是移植时需要实现的文件目录名为[compiler]/[architecture]比如RVDS/ARM_CM3这表示 cortexM3 架构在 RVDS 工具上的移植文件2.核心文件FreeRTOS的最核心文件只有2个FreeRTOS/Source/tasks.cFreeRTOS/Source/list.c其他文件的作用也一起列表如下3.移植时涉及的文件移植FreeRTOS时涉及的文件放在 FreeRTOS/Source/portable/[compiler]/[architecture]目录下比如RVDS/ARM_CM3这表示cortexM3架构在RVDS或Keil工具上的移植文件里面有2个文件port.cportmacro.h4.头文件相关4.1 头文件目录FreeRTOS需要3个头文件目录FreeRTOS 本身的头文件 Middlewares\Third_Party\FreeRTOS\Source\include移植时用到的头文件 Middlewares\Third_Party\FreeRTOS\Source\portable\[compiler]\[architecture]含有配置文件 FreeRTOSConfig.h 的目录Core\Inc4.2 头文件列表如下5.内存管理文件在 Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang 下它也是放在“portable”目录下表示你可以提供自己的函数源码中默认提供了5个文件对应内存管理的5种方法6.入口函数在 Core\Src\main.c 的 main 函数里初始化了 FreeRTOS 环境、创建了任务然后启动调度器源码如下7.数据类型和编程规范7.1 数据类型每个移植的版本都含有自己的portmacro.h头文件里面定义了2个数据类型TickType_tBaseType_t7.2 变量名变量名有前缀7.3 函数名函数名的前缀有2部分返回值类型、在哪个文件定义7.4 宏的名宏的名字是大小可以添加小写的前缀。前缀是用来表示宏在哪个文件中定义通用的宏定义如下