手把手叫你学会搭建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 */
}



目录
相关文章
|
数据可视化 中间件 API
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
熟悉 在 STM32 CubeMX 下面的 FreeRTOS 使用
1488 1
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
|
2月前
|
传感器 物联网 调度
从0入门FreeRTOS之第一节 什么是FreeRTOS?
FreeRTOS(Free Real-Time Operating System)是一款开源的实时操作系统(RTOS),专为嵌入式系统设计。由Real Time Engineers Ltd.开发和维护,FreeRTOS以其小巧、高效、易于使用的特点广受欢迎。FreeRTOS支持多种微控制器和微处理器平台,提供丰富的实时操作系统功能,使开发者能够轻松构建高效、实时响应的应用程序。
173 0
|
3月前
|
异构计算 SoC
最详细手把手教你安装 Vivado2018.3
最详细手把手教你安装 Vivado2018.3
286 0
|
3月前
|
异构计算 SoC
最详细手把手教你安装 Vivado2019.2
最详细手把手教你安装 Vivado2019.2
320 0
|
3月前
|
异构计算 SoC
最详细手把手教你安装 Vivado2017.4
最详细手把手教你安装 Vivado2017.4
141 0
|
3月前
|
存储 C++ 内存技术
Keil5使用心得以及知识总结
Keil5使用心得以及知识总结
|
3月前
|
消息中间件 资源调度 算法
FreeRTOS最全教程(目录)
FreeRTOS最全教程(目录)
542 1
|
3月前
|
NoSQL 开发工具 数据库
基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
|
10月前
|
传感器 调度 开发者
【Freertos基础教程】任务管理之基本使用
【Freertos基础教程】任务管理之基本使用
|
编译器 开发者
手把手叫你学会搭建FreeRTOS工程文件(上)
手把手叫你学会搭建FreeRTOS工程文件
204 1