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中的内容进行一个简单的说明。
- FreeRTOS移植笔记(一)创建工程模板
- FreeRTOS STM32移植笔记
- FreeRTOS STM32移植笔记
- FreeRTOS STM32移植笔记
- FreeRTOS STM32移植笔记
- FreeRTOS STM32移植笔记
- FreeRTOS STM32移植笔记
- STM32+freeRTOS学习笔记-1.使用cube MX创建一个freeRTOS的keil工程
- FreeRTOS学习笔记一
- 如何创建RL_M3工程模板_RTX移植到STM32F103
- FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅
- 如何创建新的FreeRTOS工程
- ESP8266_RTOS_SDK学习笔记之 FreeRTOS移植浅析
- FreeRTOS 移植
- FreeRTOS 移植
- FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS
- FreeRTOS----创建FreeRTOS项目
- FreeRTOS学习笔记——创建任务
- DP (6) -- Best Time to Buy and Sell Stock with Cooldown,Range Sum Query 2D - Immutable
- 如何创建ORACLE大文件表空间
- 上课心得
- Java 中四种代码块:普通代码块、构造块、静态代码块、同步代码块。
- 能源物联网中如何处理上报的大量数据问题的思路分析(题目有点长,但是我不介意它更长)--后续会继续补充
- FreeRTOS移植笔记(一)创建工程模板
- JavaScript
- eclipse如何修改dynamic web module version
- 安卓成长记(二)
- Spring 注入问题
- 《linux内核完全剖析》笔记04-任务调度
- python读取xml文件
- matlab画动画
- 第三章 加分的