FreeRTOS移植笔记(一)创建工程模板

来源:互联网 发布:光翼网络班多少钱 编辑:程序博客网 时间:2024/05/22 04:57

一、FreeRTOS介绍

  FreeRTOS是由Real Time Engineers Ltd出品的一款市场领先的嵌入式实时操作系统,支持35种处理器架构。而且商业使用的话不需用户公开源代码,开源免费,不存在任何的版权问题。由于其开源免费,所以被广大嵌入式爱好者接受。这篇博文主要为大家介绍怎么创建FreeRTOS的工程。要想了解更多关于FreeRTOS的发展历史等方面的信息可以查看官网http://www.freertos.org/RTOS-contact-and-support.html。

二、开发环境

  对于FreeRTOS的移植,如果你使用的IDE开发环境是MDK,这里建议大家使用MDK4.7X即以上的版本,保证能够支持STM32。

三、创建工程模板

  假设我们已经有了一个裸机的STM32的工程模板,现在我们就直接在这个工程模板上添加FreeRTOS,裸机的STM32的工程模板如下图所示:
这里写图片描述
  准备好裸机的 STM32的工程模板之后,就可以在上边移植FreeRTOS了。具体步骤如下:
  第1步:在工程模板中创建FreeRTOS文件夹,并将FreeRTOS的源码放在该文件夹下。(将FreeRTOSV8.2.3\FreeRTOS\Source里面的所有文件复制到刚刚创建的FreeRTOS文件夹下)
这里写图片描述
  第2步:将FreeRTOS的源码文件添加到MDK的工程项目中,如下图所示:
这里写图片描述
  说明:由于我的STM32是买的野火的开发板学的,而FreeRTOS是通过安富莱的FreeRTOS教程来学习的,所以我的工程模板是这两个的结合,而大家在建工程的时候可以选择自己喜欢的风格,不必拘泥于此。
  第3步:添加头文件路径:
这里写图片描述
  第4步:修改FreeRTOSConfig.h配置文件,在原有的FreeRTOSConfig.h文件的基础上增加以下部分,后期如果我们需要使用哪个API函数,在此基础上继续添加即可。
  1)、添加宏定义__NVIC_PRIO_BITS,代码如下:

    #ifndef __NVIC_PRIO_BITS        #define configPRIO_BITS   __NVIC_PRIO_BITS    #else        #define configPRIO_BITS   4    #endif

  2)、在FreeRTOSConfig.h文件的末尾加上SysTick、PendSV和SVC中断函数的宏定义,然后再stm32f10x_it.c中将这三个中断函数注释掉,这里说明一下,如果在FreeRTOSConfig.h中不添加这三个宏定义,则我们创建的任务不会被执行,而这三个中断函数在stm32f10x_it.c中如果没有被注释掉,将会报错,这个大家可以试一下,看看效果。添加的宏定义代码如下:

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

  至此,FreeRTOS的移植工作完成了,我们创建了一个基本的工程模板,在以后的使用中,我们可以直接在这个工程模板上添加我们需要的外设即可。
  接下来的一篇博文,将会对FreeRTOSConfig.h中的内容进行一个简单的说明。

0 0
原创粉丝点击