写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
目录
一、V9.0.0源码版本获取
二、文件分类
三、其他
FreeRTOS官网:https://www.freertos.org/index.html
一、V9.0.0源码版本获取
1、官方托管在 SVN的源代码链接:https://sourceforge.net/projects/freertos/files/FreeRTOS/(推荐)
2、官方托管在 GitHub的源代码链接:https://github.com/FreeRTOS/FreeRTOS
这里使用 V9.0.0版本,包括之后都是以 V9.0.0版本为参考,不要问我为什么,哪个版本成熟稳定用那个
二、文件分类
FreeRTOSv9.0.0
│
├─ New - Direct to Task Notifications
├─ New - FreeRTOS+TCP
├─ Quick_Start_Guide
├─ Upgrading-to-FreeRTOS-9
│
├─ FreeRTOS-Plus // 包含 FreeRTOS+组件(TCP/CLI/IO/UDP)和演示项目
│ │
│ ├─ Demo
│ ├─ Source
│ └─ readme.txt // 当前目录的一些文档说明
│
├─ FreeRTOS // 包含 FreeRTOS实时内核源代码文件和演示项目(主要移植这个)
│ │
│ ├─ Demo // 包含演示应用程序项目
│ ├─ License // 许可说明
│ ├─ Source // 包含实时内核源代码
│ ├─ links_to_doc_pages_for_the_demo_projects
│ └─ readme.txt // 当前目录的一些文档说明
│
└─ readme.txt // 主目录文档的大致说明
因为之后的实验是以移植 FreeRTOS这个文件为主,所以主要讲解这个文件里面的东西
1、首先是 FreeRTOS/Source文件
FreeRTOS
└─ Source // 核心 FreeRTOS内核文件
│
├─ include // 核心 FreeRTOS内核头文件
│
├─ portable // 与处理器相关的特定代码
│ │
│ ├─ Compiler x // 编译器x 支持的所有端口
│ ├─ Compiler y // 编译器y 支持的所有端口
│ ├─ MemMang // 堆实现的示例
│ └─ readme.txt // 当前目录的一些文档说明
│
└─ readme.txt // 当前目录的一些文档说明
FreeRTOS/Source目录包含 FreeRTOS源代码,并包含它自己的自述文件。
FreeRTOS/Source/Portable目录包含特定于特定微控制器和或编译器的文件。
FreeRTOS/Source/include目录包含实时内核头文件。
核心 RTOS代码包含在三个文件中,他们分别是 tasks.c, queue.c和 list.c,这三个文件位于 FreeRTOS / Source目录中;同一目录下还包含两个名为 timers.c和 croutine.c的可选文件,它们分别实现软件计时器和协同例程功能。
同样的,官方提供的几个堆的分配方案也位于可移植层中。各种样本 heap_x.c文件位于 FreeRTOS / Source / portable / MemMang目录中
2、FreeRTOS/Demo文件
FreeRTOS
└─ Demo // 演示应用程序项目
│
├─ Common // 所有演示使用的演示应用程序文件
│
├─ Dir x // 端口 x的演示应用程序构建文件
│
├─ Dir y // 端口 y的演示应用程序构建文件
│
└─ readme.txt // 当前目录的一些文档说明
FreeRTOS/Demo目录包含用于每种处理器体系结构和编译器端口的演示应用程序。演示应用程序的大部分代码对所有端口通用,并且包含在 FreeRTOS / Demo / Common / Minimal目录中(位于 FreeRTOS / Demo / Common / Full目录中的代码是旧代码,仅由PC端口使用) 。
其余的 FreeRTOS / Demo子目录包含用于构建单个演示应用程序的预配置项目,目录被命名以指示它们所关联的端口;每个 RTOS端口目录下包含着自己的 readme文件,而且它们还具有其自己的网页,该网页详细说明了可在其中找到该端口的演示应用程序的目录。