RTOS学习笔记(二):FreeRTOS移植

1.获取FreeRTOS源码

提供的例程基于FreeRTOS的V10.4.6版本

1.1FreeRTOS官网获取

  1. 访问 FreeRTOS官网
  2. 点击页面的Download按钮,点击后会自动下载源码的压缩包。

该方法的缺点是下载速度较慢。

1.2正点原子资料获取

也可以去正点原子官网下载RTOS相关资料,其中就包含FreeRTOS的源码。

不管以哪种方式下载,源码的压缩包解压后都应当包含以下文件:

RTOS学习笔记(二):FreeRTOS移植_第1张图片

2.FreeRTOS源码内容

文件夹中的主要文件的作用如下表所示:

名称 描述
FreeRTOS FreeRTOS内核
FreeRTOS-Plus FreeRTOS组件
tools 工具
Github-FreeRTOS-Home FreeRTOS的GitHub仓库链接
Quick_Start_Guide 快速入门指南官方文档链接
Upgrading-to-FreeRTOS-xxx 升级到指定FreeRTOS版本官方文档链接
History.txt FreeRTOS历史更新记录
其他 其他

2.1 FreeRTOS内核

打开文件夹FreeRTOS,可以看到一些其他的文件,这些文件的作用如下表所示:

名称 描述
Demo FreeRTOS演示例程
License FreeRTOS相关许可
Source FreeRTOS源码
Test 公用以及移植层测试代码

2.1.1 Demo文件夹

Demo文件夹内部就是FreeRTOS的演示例程,支持多种芯片架构和多种芯片型号。

这些演示例程可以帮助学习,在代码移植过程中非常有用。

2.1.2 Source文件夹

该文件夹下存放的就是FreeRTOS的源码,正如之前所说,FreeRTOS是一个轻量级、可裁剪的RTOS,所以其内部的代码文件非常简洁。

名称 描述
include 内包含了FreeRTOS的头文件
portable 内包含了FreeRTOS的移植文件
croutine.c 协程相关文件
event_groups.c 事件相关文件
list.c 列表相关文件
queue.c 队列相关文件
stream_buffer.c 流式缓冲区相关文件
task.c 任务相关文件
timer.c 软件定时器相关文件

其中,include和portable文件夹,list.c、queue.c、task.c文件是必须的,其他文件如果不需要也可以不使用。

FreeRTOS归根到底都是软件层面的东西,而要和硬件层面相联系所靠的就是portable文件夹。由于STM32多用MDK开发,因此只会介绍其中部分移植的文件。

  • keil:指向RVDS文件夹
  • RVDS:不同内核芯片的移植文件
  • MemMang:内存管理文件

3.FreeRTOS移植

移植准备

  • FreeRTOS源码
  • 基础工程

移植步骤

  1. 将FreeRTOS源码添加至基础工程、头文件路径等。在这一步中,源码主要指的是portable文件夹中的文件,并且并非所有的文件都会被用到,因此可以删去一些自己不需要的文件。
  2. 添加FreeRTOSConfig.h配置文件。该文件的获取方法有三种,分别是:根据需求自己编写、DEMO例程获取以及从正点原子提供的例程中直接获取。
  3. 修改SYSTEM文件夹,该文件夹下主要包括有:sys.c、delay.c、usart.c。
  4. 修改中断相关文件(SysTick中断、SVC中断、PendSV中断。
  5. 添加应用程序,验证是否移植成功

注意:由于这部分是正点原子视频课的笔记,所以非常依赖于正点原子的开发板。

你可能感兴趣的:(RTOS,学习,笔记,stm32)