二、FreeRTOS目录文件概述

这篇具有很好参考价值的文章主要介绍了二、FreeRTOS目录文件概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、FreeRTOS目录结构

(1)官网下载FreeRTOS源码。

(2)FreeRTOS源码目录树。(由目录树生成工具zDirTree生成)

E:\RTOS\官方源码\FreeRTOSv202212.01
├FreeRTOS
│  ├Demo                       // 预先制作好的示例工程
│  │  ├CORTEX_STM32F103_Keil   // STM32F103在keil环境下的工程文件
│  │  │  ├FreeRTOSConfig.h
│  │  │  ├...
│  ├License
│  ├Source
│  │  ├croutine.c       // 核心文件
│  │  ├event_groups.c   // 核心文件
│  │  ├list.c           // 核心文件
│  │  ├queue.c          // 核心文件
│  │  ├stream_buffer.c  // 核心文件
│  │  ├tasks.c          // 核心文件
│  │  ├timers.c         // 核心文件
│  │  ├include
│  │  ├portable         // 移植时需要实现的文件
│  │  │  ├MemMang       // 内存管理
│  │  │  │  ├heap_1.c
│  │  │  │  ├heap_2.c
│  │  │  │  ├heap_3.c
│  │  │  │  ├heap_4.c
│  │  │  │  ├heap_5.c
│  │  │  │  ├ReadMe.url
│  │  │  ├RVDS          // IDE为RVD或keil
│  │  │  │  ├ARM_CM3    // CortexM3架构
│  │  │  │  │  ├port.c
│  │  │  │  │  ├portmacro.h
│  ├Test

(3)Demo目录。

  • Demo目录下是示例工程文件,以“芯片和编译器”组合成一个名字。
  • 比如:CORTEX_STM32F103_Keil。

(4)Source目录。

  • Source根目录下是核心文件,这些文件是通用的。
  • Source/portable目录下是移植时需要实现的文件,目录名为:编译器/架构。比如:RVDS/ARM_CM3,这表示cortexM3架构在RVDS工具上的移植文件

2、核心文件

(1)FreeRTOS的最核心文件只有2个。

  • FreeRTOS/Source/tasks.c
  • FreeRTOS/Source/list.c

(2)其他文件的作用也一起列表如下:

FreeRTOS/Source/xx文件 作用
tasks.c 必须,任务操作
list.c 必须,列表
queue.c 基本必需,提供队列操作、信号量(semaphore)操作
timer.c 可选,software timer
event_groups.c 可选,提供event group功能
croutine.c 可选,过时了

3、移植时涉及的文件

(1)移植FreeRTOS时涉及的文件放在 FreeRTOS/Source/portable/[compiler]/[architecture] 目录
下,比如:RVDS/ARM_CM3,这表示cortexM3架构在RVDS或Keil工具上的移植文件。

(2)里面有2个文件。

  • port.c
  • portmacro.h

4、头文件相关

4.1、头文件目录

(1)FreeFTOS需要3个头文件目录。

  • FreeRTOS本身的头文件:FreeRTOS/Source/include
  • 移植时用到的头文件:FreeRTOS/Source/portable/[compiler]/[architecture]
  • 含有配置文件FreeRTOSConfig.h的目录

4.2、头文件作用

头文件 作用
FreeRTOSConfig.h

FreeRTOS的配置文件,比如选择调度算法:configUSE_PREEMPTION

每个demo都必定含有FreeRTOSConfig.h
建议去修改demo中的FreeRTOSConfig.h,而不是从头写一个

FreeRTOS.h 用FreeRTOS API函数时,必须包含此文件。
在FreeRTOS.h之后,再去包含其他头文件,比如:
task.h、queue.h、semphr.h、event_group.h

5、内存管理

(1)文件在 FreeRTOS/Source/portable/MemMang 下,它也是放在 portable 目录下,表示你可以提供自己的函数。

(2)源码中默认提供了5个文件,对应内存管理的5种方法。文章来源地址https://www.toymoban.com/news/detail-657448.html

文件 优点 缺点
heap_1.c 分配简单,时间确定 只分配、不回收
heap_2.c 动态分配、最佳匹配 碎片、时间不定
heap_3.c 调用标准库函数 速度慢、时间不定
heap_4.c 相邻空闲内存可合并 可解决碎片问题、时间不定
heap_5.c 在heap_4基础上支持分隔的内存块 可解决碎片问题、时间不定

到了这里,关于二、FreeRTOS目录文件概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RTOS学习】FreeRTOS中的链表 | 堆的管理

    🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言: 你只管努力,剩下的交给时间! 链表是FreeRTOS的核心结构,它让系统的功能正常运行,本喵下面来解释一下FreeRTOS中的链表结构以及操作。 如上图所示是FreeRTOS源码中的链表的定义 List_t ,这是一个链表头,重要的成员

    2024年02月04日
    浏览(30)
  • freertos学习之路1-裸机和rtos的区别

    由于工作需要,需要开始学习freertos的相关知识,本专题主要记录freertos的相关内容 参考: https://www.bilibili.com/video/BV19g411p7UT 正点原子视频 试想一种场景,我们正在打游戏,但女朋友在你打游戏的过程中给你发送消息,你需要回复消息 1.1 裸机处理方式 玩过51或者stm32的裸机编

    2023年04月17日
    浏览(28)
  • 【RTOS】快速体验FreeRTOS所有常用API(4)队列

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月15日
    浏览(30)
  • [RTOS]rtthread,freeRTOS,uCOS等系统简单对比

    在上一篇《嵌入式操作系统浅谈》中,大概介绍了我自己再工作中使用到的如rt-thread,freeRTOS,uCOS,luatos等系统,在这一篇文章中,我简单说一下这些操作系统一些特点,还有就是我们平时的工作中什么场景下用哪种系统比较好。 csdn里面很多大神对上面的一些系统都做过了

    2023年04月15日
    浏览(23)
  • 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)_stm32移植freertos(1)

    直接意识代码: 这是我们大脑最希望的添加代码方式,很显然他是 错的 , 两个任务之间产生了相互的影响 ,使得两个任务都执行错误,这种思想在 裸机开发 中肯定是 错的 ,但是在我们的 RTOS 中他就可以是 对的 。 任务型代码: 这是 独立的两个任务内容 ,我们只需要把

    2024年04月10日
    浏览(87)
  • 【RTOS】快速体验FreeRTOS所有常用API(1)工程创建

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月20日
    浏览(32)
  • 【RTOS】快速体验FreeRTOS所有常用API(2)任务管理

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月15日
    浏览(30)
  • 【FreeRTOS】FreeRTOS移植stm32详细步骤介绍

    我在查找FreeRTOS移植的相关教程特别少,所以想非常详细的介绍FreeRTOS移植stm32详细步骤,包括源码的下载,源码介绍,系统移植,代码验证等,每一步都有对应的介绍和解释,希望可以帮助到你们。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分

    2024年02月08日
    浏览(31)
  • 【GD32/STM32】FreeRtos移植

    ​ (1)下载FreeRtos源码包 ​ FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions ​ (2)将源文件添加至工程 ​ (3)将GD32中的三个中断交由FreeRtos接管 ​ (4)配置管理FreeRTOS.h文件 ​ (5)FreeRtos基本使用方法 源码包结构 1.Demo中存放的

    2024年01月20日
    浏览(29)
  • STM32之FreeRTOS

    目录 FreeRTOS 介绍 什么是 FreeRTOS ? 为什么选择 FreeRTOS ?   FreeRTOS 资料与源码下载 祼机开发与 FreeRTOS  祼机开发: FreeRTOS: FreeRTOS 实现多任务的原理 二、移植 FreeRTOS  手动移植 使用CubeMX快速移植 快速移植流程 一些常见问题 1. Timebase Source 为什么不能设置为 SysTick ? 2. FreeRTO

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包