01-FreeRTOS官方源码下载、简介及移植


 FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

1. 官方源码下载

 FreeRTOS源码的官方下载地址为 FreeRTOS官方下载链接,里面有各个版本的下载地址,目前最新的版本为10.2.1。除此之外我也将官方源码和相关手册文档上传至我的资源处,也可以直接进行下载,下载链接为 FreeRTOS源码及官方参考资料

2. FreeRTOS 文件夹内容简介

 打开官方源码文件夹可以发现里面有 FreeRTOS 和 FreeRTOS-Plus 两个文件夹,FreeRTOS文件夹包含Demo例程和内核源码,是移植过程中要重点查看的,FreeRTOS-Plus 文件夹里面包含的是第三方的产品,一般不使用。
 打开FreeRTOS 文件夹,可以发现里面包含了三个文件夹,将主要的文件夹和文件以文件树的形式总结如下:

└─FreeRTOS
   ├─Demo		// 各种开发平台的Demo例程
   │  ├─CORTEX_M4F_STM32F407ZG-SK	// STM32F407例程
   │  ├─CORTEX_STM32F103_IAR		// STM32F103 IAR 例程
   │  └─CORTEX_STM32F103_Keil		// STM32F103 Keil例程
   ├─License	// 许可证文件
   │  └─license.txt				// 许可证文件
   └─Source		// 移植所需的源码和头文件等
	  ├─include				// 通用头文件,无编译器区分
	  │  └─xxx.h				// 通用头文件,无编译器区分
	  ├─portable			// 编译器相关文件
	  │  ├─IAR					// IAR编译器
	  │  │  ├─ARM_CM0			// M0内核
	  │  │  ├─ARM_CM3			// M3内核
	  │  │  ├─ARM_CM4F			// M4内核
	  │  │  └─ARM_CM7			// M7内核
      │  │     ├─port.c			// 处理器写的接口文件
	  │  │     └─portmacro.h	// port.c对应的头文件
      │  ├─Keil					// Keil编译器
	  │  │  └─See-also-the-RVDS-directory.txt	// 提示查看RVDS文件夹
	  │  │     └─Nothing to see here.	// txt里面的内容
      │  ├─MemMang				// 内存管理相关
	  │  │  ├─heap_1.c			// 动态内存分配相关函数接口
	  │  │  ├─heap_2.c
	  │  │  ├─heap_3.c
	  │  │  ├─heap_4.c
	  │  │  └─heap_5.c
	  │  └─RVDS					// Keil编译器
	  │     ├─ARM_CM0	
	  │     ├─ARM_CM3	
	  │     ├─ARM_CM4F	
	  │     └─ARM_CM7		  
	  │        ├─port.c			// 处理器写的接口文件
	  │        └─portmacro.h	// port.c对应的头文件
	  ├─croutine.c			// 通用c文件,无编译器区分
	  ├─event_groups.c		// 通用c文件,无编译器区分
	  ├─list.c				// 通用c文件,无编译器区分
	  ├─queue.c				// 通用c文件,无编译器区分
	  ├─tasks.c				// 通用c文件,无编译器区分
	  ├─timers.c			// 通用c文件,无编译器区分
	  └─readme.txt			// readme文件

3. IAR的STM32F4的移植

3.1 相关文件的复制

 在自己的工程目录下新建一个名为 FreeRTOS 的文件夹,在此文件夹下建立src和port两个空文件夹,其中src存放 FreeRTOS 中的核心源文件,port存放内存管理以及处理器架构相关的代码,
   1. 将 FreeRTOSv9.0.0\FreeRTOS\Source 下的6个.c文件复制到 src 文件夹下。
   2. 将 FreeRTOSv9.0.0\FreeRTOS\Source\portable\MemMang 下的 heap_3.c 复制到 port 文件夹下。
   3. 将 FreeRTOSv9.0.0\FreeRTOS\Source\portable\IAR\ARM_CM4F 下的 .c和.h文件复制到 port 文件夹下。(注:根据自己的编译环境和实际的芯片内核架构来选择,本次实验采用的是IAR编译环境,使用的芯片是STM32F407,采用的是M4的内核,因此复制此文件)
   4. 将 FreeRTOSv9.0.0\FreeRTOS\Source 下的 include 文件夹直接复制到 FreeRTOS 文件夹下。
   5. 将 FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK 下的 FreeRTOSConfig.h 文件复制到 FreeRTOS 文件夹下。该文件是 FreeRTOS 的配置文件,可以修改此文件来裁剪 FreeRTOS 的功能。
   拷贝完成的界面如下图所示:

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤下载FreeRTOS源码: 1. 访问FreeRTOS官网,点击页面上的"Download"按钮。 2. 在下载页面中,选择您需要的版本并点击下载按钮。 3. 下载完成后,双击打开下载文件,并点击"Extract"按钮进行解压。 4. 打开刚刚设置的下载路径,您会看到已经下载完成的FreeRTOS源码文件夹。其中,"Source"文件夹是您需要的源码文件,它包含了FreeRTOS的核心代码。 5. 如果您需要进行Keil工程移植,可以将源码文件复制到您的工程文件夹中。 6. 在移植过程中,您可能需要保留"portable"文件夹中的"keil"、"MemMang"和"RVDS"这三个文件夹,其他文件夹可以删除。 7. 打开Keil工程,创建分组并添加源码文件。 8. 添加相应的头文件路径,并进行编译。如果遇到无法打开"FreeRTOSConfig.h"文件的错误提示,您可以自行创建该文件,或者从FreeRTOS官方移植工程的Demo文件夹中找到相应的配置文件并添加到工程中。 9. 完成以上步骤后,您可以继续进行您的工程开发了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STM32-FreeRTOS源码下载移植步骤(基于Keil)](https://blog.csdn.net/qq_37596943/article/details/88934115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值