一、FREERTOS学习之 freertos移植流程步骤

目录

一、FREERTOS资源包下载

二、移植

1、资源包整理

三、工程添加

1、添加

2、编译路径添加

 3、修改FreeRTOSConfig.h

4、修改stm32f10x_it.c

5、注意


一、FREERTOS资源包下载

官网:http://www.freertos.org/

代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/

手册下载:https://www.freertos.org/Documentation/RTOS_book.html

一、FREERTOS学习之 freertos移植流程步骤_第1张图片

一、FREERTOS学习之 freertos移植流程步骤_第2张图片


二、移植

1、资源包整理

在工程下建立两个文件夹FREERTOS_SCR,FREERTOS_PORT(文件名自定义)

FREERTOS_SCR:放置freertos的核心源文件(.c文件)

FREERTOS_PORT:放置内存管理和处理器架构的相关代码

在资源包中找到文件,如图:

一、FREERTOS学习之 freertos移植流程步骤_第3张图片

 一、FREERTOS学习之 freertos移植流程步骤_第4张图片

 至此第一步已经准备完毕,接下来将文件移到工程上。


三、工程添加

1、添加

一、FREERTOS学习之 freertos移植流程步骤_第5张图片

FreeRTOSConfig.h:工程配置文件,通过修改这个文件用来裁剪freertos的功能。

heap_4.c:freertos内存管理的一种方式。

2、编译路径添加

一、FREERTOS学习之 freertos移植流程步骤_第6张图片

 3、修改FreeRTOSConfig.h

根据自己的需求改写FreeRTOSConfig.h,对工程需要的功能进行使能。(后面待更新)

4、修改stm32f10x_it.c

滴答定时器systick是freertos的心跳时钟,驱动freertos的运行,freertos已经在port.c中实现了

中断配置(vPortSetupTimerIntterupt()函数)和通用中断服务函数(xPortSystickHandler()函数)

所以移植时我们只需要在stm32f10x_it.c中实现中断服务函数即可。

具体操作:在port.c文件中xPortPendSVHandler(),vPortSVCHandler()函数已经实现,我们只需要在stm32f10x_it.c中注释掉PendSV_Handler()和SVC_Handler()函数。

5、注意

在使用FREERTOS  API函数时需要包含FreeRTOS.h后,再去包含其他头文件。

如果在移植的过程中启动开始调度函数,卡在起始文件中,可在freertosconfig.h中添加上:

#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler  PendSV_Handler
#define vPortSVCHandler     SVC_Handler

你可能感兴趣的:(FreeRTOS,单片机)