文章目录
- 1. 官方源码下载
- 2. FreeRTOS 文件夹内容简介
- 3. IAR的STM32F4的移植
- 3.1 相关文件的复制
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 的功能。
拷贝完成的界面如下图所示:
更多推荐
01-FreeRTOS官方源码下载、简介及移植
发布评论