FreeRTOS 源码概述

1.1FreeRTOS目录结构

使用STM32CubeMX创建的FreeRTOS工程中,FreeRTOS相关的源码如下:

主要涉及2个目录

Core:

                Inc目录下的FreeRTOSConfig.h是配置文件

                Src目录下的freertos.c是STM32CubeMX创建的默认人物

Middlewares\Third_Party\FreeRTOS\Source:

                根目录下是核心文件,这些文件是通用的

                portable目录下是移植时需要实现的文件

                                目录名为:【compiler】/[architecture]

                                比如:RVDS/ARM_CM3,这表示cortexM3架构在RVDS工具上的移植文件

1.2核心文件

FreeRTOS的最核心文件只有2个:

FreeRTOS/Source/tasks.c

FreeRTOS/Source/list.c

其他文件的作用如下:

1.3移植时涉及的文件

移植FreeRTOS时涉及的文件放在

FreeRTOS/Source/portable/[compiler]/[architecture]目录下,

比如RVDS/ARM_CM3,这表示cortexM3架构在RVDS或keil工具上的移植文件。

里面有两个文件:

        port.c

        portmacro.h

1.4头文件相关

FreeRTOS需要3个头文件目录:

                FreeRTOS本身的头文件:Middlewares\Third_Party\FreeRTOS\Source\include

                移植时用到的头文件:Middlewares\Third_Party\FreeRTOS\Source\portable\[compiler]\[architecture]

                含有配置文件FreeRTOSConfig.h的目录:Core/Inc

1.5内存管理

文件在 Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang 下,它也是放
在“portable”目录下,表示你可以提供自己的函数。

1.6入口函数

在 Core\Src\main.c 的 main 函数里,初始化了 FreeRTOS 环境、创建了任务,然后启动
调度器。源码如下:

1.7数据类型和编程规范

每个移植的版本都含有自己的portmacro.h头文件,里面定义了2个数据类型:

TickType_t:

◼ FreeRTOS 配置了一个周期性的时钟中断: Tick Interrupt
◼ 每发生一次中断,中断次数累加,这被称为 tick count
◼ tick count 这个变量的类型就是 TickType_t
◼ TickType_t 可以是 16 位的,也可以是 32 位的
◼ FreeRTOSConfig.h 中定义 configUSE_16_BIT_TICKS 时, TickType_t 就是 uint16_t
◼ 否则 TickType_t 就是 uint32_t
◼ 对于 32 位架构,建议把 TickType_t 配置为 uint32_t
 

BaseType_t:

◼ 这是该架构最高效的数据类型
◼ 32 位架构中,它就是 uint32_t
◼ 16 位架构中,它就是 uint16_t
◼ 8 位架构中,它就是 uint8_t
◼ BaseType_t 通 常 用 作 简 单 的 返 回 值 的 类 型 , 还 有 逻 辑 值 , 比 如
pdTRUE/pdFALSE
 

变量名有前缀

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小蜗牛,大大梦想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值