0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS简介及FreeRTOS源码包组成结构

冬至子 来源:嵌入式系统研发 作者:ESDev 2023-06-09 14:21 次阅读

2.FreeRTOS简介

FreeRTOS 是市场领先的面向微控制器和小型微处理器的实时操作系统 (RTOS),与世界领先的芯片公司合作开发。FreeRTOS目前由亚马逊公司管理,遵循MIT开源许可证协议进行免费分发,包括一个实时内核和一组不断丰富的 IoT 库。

FreeRTOS的代码库支持 40 多种 MCU 架构和 10多种工具链,包括最新RISC-VARMv8-M (Arm Cortex-M33) 微控制器。

3.FreeRTOS源码包组成结构

在FreeRTOS官网可以下载到最新的源码包,当前版本为FreeRTOSv202212.01

FreeRTOS源码包主要包含2个子目录:FreeRTOS 和 FreeRTOS-Plus。

(1)FreeRTOS目录包含实时内核源文件和示例工程;

(2)FreeRTOS-Plus 库实现了 FreeRTOS 内核的附加功能,包含FreeRTOS-Plus-TCP、FreeRTOS-Plus-CLI和FreeRTOS-Plus-IO等模块及示例工程。

图片

FreeRTOS目录包含实时内核源文件目录Source和示例工程目录Demo。

图片

FreeRTOS/Source目录包含内核源文件、内核头文件目录include和处理器相关的移植文件目录portable。

FreeRTOS/Source目录下的内核源文件包含3个核心 RTOS 代码,分别为:task.c、queue.c和list.c。还包含4个可选代码,timers.c实现了软件计时器;croutine.c实现了协程功能;event_groups.c实现了事件组功能;stream_buffer.c实现了流缓冲区功能。

图片

FreeRTOS/portable目录包含了不同编译器和芯片架构对应的可移植层代码,位于FreeRTOS/Source/portable/[compiler]/[architecture]子目录下,其中[compiler]和[architecture]分别表示编译器和芯片架构。例如,FreeRTOS\\Source\\portable\\RVDS\\ARM_CM3子目录表示RVDS及Keil开发环境下ARM Cortex-M3架构处理器的可移植层代码。

此外,FreeRTOS/portable目录下还包含用于内存管理的堆分配方案代码,位于FreeRTOS/Source/portable/MemMang 目录中,支持heap_1.c~heap_5.c五种分配方案。

图片

FreeRTOS/Demo目录包含所有示例工程的共用目录Common以及不同编译器和芯片架构对应的专用目录。例如,FreeRTOS/Demo/CORTEX_STM32F103_Keil目录是STM32F103微控制器的Keil工程目录,对应架构为ARM Cortex-M3。

图片

4.FreeRTOS项目工程建立方法

4.1概要

本节主要介绍基于FreeRTOS源码包,新建FreeRTOS项目工程所需的必备源文件、头文件、配置文件和可选源文件。

4.2必备源文件

FreeRTOS项目工程必须包含以下源文件:

(1)FreeRTOS/Source/tasks.c

(2)FreeRTOS/Source/queue.c

(3)FreeRTOS/Source/list.c

(4)FreeRTOS/Source/portable/[compiler]/[architecture]/port.c

(5)FreeRTOS/Source/portable/MemMang/heap_x.c,x为1~5

4.3头文件

编译器应包含如下头文件路径:

(1)FreeRTOS/Source/include

(2)FreeRTOS/Source/portable/[compiler]/[architecture]

(3)使用的示例项目中FreeRTOSConfig.h配置文件所在的目录

4.4配置文件

配置文件FreeRTOSConfig.h用于为构建的应用程序量身定制 RTOS 内核,并根据实际硬件情况对CPU主频、中断优先级等参数进行配置。

FreeRTOS/Demo下的示例项目中均含有配置文件FreeRTOSConfig.h,新建项目时选取相同编译器及相同芯片架构的FreeRTOSConfig.h文件作为模板,在此基础上进行修改即可。

4.5可选源文件

FreeRTOS项目工程的可选源文件包括:

(1)FreeRTOS/Source/timers.c,用于软件定时器功能;

(2)FreeRTOS/Source/event_groups.c,用于事件组功能;

(3)FreeRTOS/Source/stream_buffer.c,用于流缓冲区功能;

(4)FreeRTOS/Source/croutine.c,用于协程功能,注意目前协程功能已 被弃用,不推荐用于新设计。

4.6小结

本节介绍了基于FreeRTOS源码包新建FreeRTOS项目工程所需的源文件和头文件。在编译工程时可能会报一些错误;在编译通过后,调试功能时也可能会遇到一些问题,到时需要具体问题具体分析解决了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147648
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361825
  • 微处理器
    +关注

    关注

    11

    文章

    2133

    浏览量

    81421
  • 计时器
    +关注

    关注

    1

    文章

    395

    浏览量

    32157
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61349
收藏 人收藏

    评论

    相关推荐

    如何移植FreeRTOS源码

    参照正点原子FreeRTOS视频教程,首次接触操作系统,做笔记方便回顾目录如何移植1.复制粘贴2.工程添加3.路径添加4.将非源码文件添加和解决其他编译问题如何移植FreeRTOS源码
    发表于 08-03 06:12

    下载并整理FreeRTOS源码

    一、下载并整理FreeRTOS源码下载压缩解压打开解压后的文件夹打开FreeRTOS–Source–portable文件夹再打开RVDS文件夹把里面的ARM_CM3文件夹复制到kei
    发表于 08-24 07:49

    freertos官方源码

    源码有2个,一个是FreeRTOS 202111.00,一个是FreeRTOS LTS 202012.03。两个源码
    发表于 12-06 16:53

    FreeRTOS的移植与FreeRTOS源码文件作用介绍

    文章目录一、实时操作系统二、FreeRTOS三、移植FreeRTOS的准备工作(一)、FreeRTOS源码文件作用介绍1、include文件夹(1)、include/croutine.
    发表于 02-18 06:13

    FreeRTOS操作系统源码V3.2

    FreeRTOS操作系统源码V3.2
    发表于 03-26 15:24 94次下载

    FreeRTOS_002_ 源码文件描述与提取建立工程

    FreeRTOS_002_源码文件描述与提取建立工程
    的头像 发表于 03-14 11:47 2187次阅读
    <b class='flag-5'>FreeRTOS</b>_002_ <b class='flag-5'>源码</b>文件描述与提取建立工程

    freertos移植教程_freertos任务调度原理

    在移植之前,我们首先要获取到FreeRTOS的官方的源码包。
    发表于 04-16 09:16 1.2w次阅读
    <b class='flag-5'>freertos</b>移植教程_<b class='flag-5'>freertos</b>任务调度原理

    STM32移植FreeRTOS(图文实操)

    目录一、Freertos1、前后台系统2、可剥夺型内核3、Freertos系统简介二、FreeRTOS移植1.在基础工程种新建Freertos
    发表于 11-21 19:06 8次下载
    STM32移植<b class='flag-5'>FreeRTOS</b>(图文实操)

    【STM32】FreeRTOS移植

    00. 目录文章目录00. 目录01. 简介02. 预备工作03. FreeRTOS移植04. SYSTEM文件修改05. 测试程序设计06. 附录07. 参考01. 简介我们已经了解
    发表于 12-04 14:06 14次下载
    【STM32】<b class='flag-5'>FreeRTOS</b>移植

    初入FreeRTOS

    源码3、FreeRTOS移植操作三、在STM32下完成一个基于FreeRTOS的多任务程序1、任务要求2、任务实施3、任务结果四、总结一、FreeRTOS介绍1、初识
    发表于 12-06 21:06 37次下载
    初入<b class='flag-5'>FreeRTOS</b>

    FreeRTOS消息队列 传递结构体指针和结构体异同

    FreeRTOS消息队列 传递结构体指针和结构体异同
    发表于 12-08 12:06 6次下载
    <b class='flag-5'>FreeRTOS</b>消息队列 传递<b class='flag-5'>结构</b>体指针和<b class='flag-5'>结构</b>体异同

    FreeRTOSFreeRTOS 源码学习笔记(1) 文件结构 + stm32f103c8t6移植步骤

    0. 引言之前freeRTOS用过几次,但是项目赶工的急,一直没有认真的去里面看过,最近正好有空,准备到里面看下源码实现,毕竟核心文件就这么几个,认真看一下流程,对操作系统的雏形也就有一个认识了
    发表于 12-09 13:51 8次下载
    【<b class='flag-5'>FreeRTOS</b>】<b class='flag-5'>FreeRTOS</b> <b class='flag-5'>源码</b>学习笔记(1) 文件<b class='flag-5'>结构</b> + stm32f103c8t6移植步骤

    FreeRTOS高级篇1---FreeRTOS列表和列表项

    FreeRTOS内核调度大量使用了列表(list)和列表项(list item)数据结构。我们如果想一探FreeRTOS背后的运行机制,首先遇到的拦路虎就是...
    发表于 01-26 17:43 15次下载
    <b class='flag-5'>FreeRTOS</b>高级篇1---<b class='flag-5'>FreeRTOS</b>列表和列表项

    FreeRTOS系列第8篇---FreeRTOS内存管理

    本文介绍内存管理的基础知识,详细源码分析见《 FreeRTOS高级篇7---FreeRTOS内存管理分析》
    发表于 01-26 17:56 17次下载
    <b class='flag-5'>FreeRTOS</b>系列第8篇---<b class='flag-5'>FreeRTOS</b>内存管理

    FreeRTOS源码下载

    内存管理文件在FreeRTOS\portable\MemMang文件夹下,FreeRTOS提供了五种内存管理方案,对于移植来说,随便选一种方案都是可以的。
    的头像 发表于 02-10 11:00 1849次阅读
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>源码</b>下载