手把手叫你学会搭建FreeRTOS工程文件(下)

简介: 手把手叫你学会搭建FreeRTOS工程文件(下)

3.3 移植port文件夹

打开 FreeRTOS V9.0.0 源码,在“FreeRTOSv9.0.0\FreeRTOS\Source\portable”目录下找到“ MemMang”文件夹与“ RVDS”文件夹,将它们拷贝到我们新建的port 文件夹中,如图所示

3.4 添加include文件夹

打开 FreeRTOS V9.0.0 源码,在“FreeRTOSv9.0.0\ FreeRTOS\Source”目录下找到“include”文件夹,它是我们需要用到 FreeRTOS 的一些头文件,将它直接拷贝到我们新建的 FreeRTOS 文件夹中 如图所示:

3.5 提取FreeRTOSConfig.h文件

3.5.1 拷贝FreeRTOSConfig.h文件

打开 FreeRTOSv9.0.0 源码,在“ FreeRTOSv9.0.0\FreeRTOS\Demo”文件夹下面找到

“ CORTEX_STM32F103_Keil ” 这 个 文 件 夹 , 双 击 打 开 , 在 其 根 目 录 下 找 到 这 个

“FreeRTOSConfig.h”文件,然后拷贝到我们工程的 user 文件夹下即可,等下我们需要对这个文件进行修改。(这里博主也提供了一个修改好的FreeRTOSConfig.h文件,在博主的资源中可以免费下载哦)

可以参考博主的这篇博客 FreeRTOSConfig.h文件讲解

四.将FreeRTOS的内容添加到工程中

4.1 操作指南

首先点击这个分组。

来到这个界面以后就可以添加组,如图所示。

4.2 添加源文件

这里我们添加了FreeRTOS/src 和FreeRTOS/port 对应着我们工程目录下的二个文件夹,再把对应的.c文件加入进去,注意:FreeRTOS/port这里我们选择的是MemMang文件下的heap_4.c 和RVDS文件下的ARM_CM3下的port.c(因为我这个使用的是STM32F103系列的芯片)。

FreeRTOS/src下的.c文件全部添加进去就行。

4.3 添加FreeRTOSConfig.h头文件

添加FreeRTOSConfig.h文件到user目录下(当然你可以适用自己的工程文件,可能每个人项目结构不同)

4.4 指定头文件路径

FreeRTOS 的源码已经添加到开发环境的组文件夹下面,编译的时候需要为这些源文件指定头文件的路径,不然编译会报错。FreeRTOS的源码里面只有FreeRTOS\include 和FreeRTOS\port\RVDS\ARM_CM3这两个文件夹下面有头文件,只需要将这两个头文件的路径在开发环境里面指定即可。同时我们还将 FreeRTOSConfig.h 这个头文件拷贝到了工程根目录下的 user 文件夹下,所以 user 的路径也要加到开发环境里面。流程如下

五. 修改stm32f10x_it.c文件

在stm32f10x_it.h删除这二个中断函数PendSV_Handler 和SVC_Handler。因为在port.c中已经写好了这二个中断函数 。同时在stm32f10x_it.c中添加如下代码 ,并且修改SysTick_Handler中断服务函数。如下图:

extern void xPortSysTickHandler(void);
• 1
void SysTick_Handler(void)
{
       #if (INCLUDE_xTaskGetSchedulerState  == 1 )
      if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
      {
    #endif  /* INCLUDE_xTaskGetSchedulerState */  
        xPortSysTickHandler();
    #if (INCLUDE_xTaskGetSchedulerState  == 1 )
      }
    #endif  /* INCLUDE_xTaskGetSchedulerState */
}



目录
相关文章
|
芯片
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
937 0
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
|
数据可视化 中间件 API
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
熟悉 在 STM32 CubeMX 下面的 FreeRTOS 使用
1691 1
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
|
2月前
【LVGL快速入门】LVGL开源框架入门教程之框架使用(三)
【LVGL快速入门】LVGL开源框架入门教程之框架使用(三)
112 1
【LVGL快速入门】LVGL开源框架入门教程之框架使用(三)
|
2月前
|
调度
【LVGL快速入门】LVGL开源框架入门教程之框架移植(四)
【LVGL快速入门】LVGL开源框架入门教程之框架移植(四)
139 3
|
2月前
|
C语言 图形学 芯片
【LVGL快速入门】LVGL开源框架入门教程之框架移植(一)
LVGL开源框架入门教程之框架移植(一)
647 2
|
2月前
【LVGL快速入门】LVGL开源框架入门教程之框架移植(二)
【LVGL快速入门】LVGL开源框架入门教程之框架移植(二)
234 2
|
2月前
【LVGL快速入门】LVGL开源框架入门教程之框架移植(三)
【LVGL快速入门】LVGL开源框架入门教程之框架移植(三)
107 2
|
2月前
【LVGL快速入门】LVGL开源框架入门教程之框架使用(一)
【LVGL快速入门】LVGL开源框架入门教程之框架使用(一)
160 1
|
2月前
|
容器
【LVGL快速入门】LVGL开源框架入门教程之框架使用(二)
【LVGL快速入门】LVGL开源框架入门教程之框架使用(二)
141 1
|
7月前
|
异构计算 SoC
最详细手把手教你安装 Vivado2019.2
最详细手把手教你安装 Vivado2019.2
556 0

热门文章

最新文章