22、FreeRTOS 在 STM32 上的移植

     

         STM32 上可以移植很多优秀的操作系统,有了操作系统之后,第一,可以提高 CPU 的利用率,第二,可以更好

的利用多任务,从而实现不同功能模块的分离。这里介绍 FreeRTOS 的移植,FreeRTOS 是一个小型的高效的实

时操作系统,移植与使用都比较简单。FreeRTOS 可以去官网下载最新版 

https://sourceforge.net/projects/freertos/


1、拷贝 FreeRTOS 到 keil 的工程中

   找一个最简单的基于 keil 的 STM32 的工程,比如点亮 LED 小灯这种,越简单越好。将下载的 

FreeRTOS 拷贝到工程目录中。


2、在 keil 中创建相应的文件夹并添加文件

   

        其中,port.c 在 FreeRTOS\portable\RVDS路径下对应的文件夹里, 根据 CPU 架构去选择。

heap_2.c 在 FreeRTOS\portable\MemMang 目录下,。里面一共有5 个文件,分别对应不同的内存分配策

略。具体的每个分配策略详解,参见文章如下:

http://blog.csdn.net/zhzht19861011/article/details/51606068


   FreeRTOSConfig.h是系统的配置文件, 用于对系统的一些属性进行配置。需要根据具体的处理器去修改 

CPU 的主频大小,堆栈大小等参数。具体详解参见如下文章:

http://blog.csdn.net/zhzht19861011/article/details/50134883


3、修改三个中断函数声明

   在该系统中使用到了SVC_Handler、PendSV_Handler、SysTick_Handler 三个中断,只是名函数称做了

修改,因此首先要在stm32f10x_it.c 文件中将对应的中断处理函数声明删除, 否然后在FreeRTOSConfig.h 

文件的最后添加如下三个宏定义

#define vPortSVCHandler      SVC_Handler

#define xPortPendSVHandler   PendSV_Handler

#define xPortSysTickHandler   SysTick_Handler

   笔者在网上其他的移植文章里面是直接在启动汇编文件中去修改函数声明, 这样会破坏官网原生的汇编文件,

因此这里直接在配置文件里面去添加宏定义


4、 在keil 中把 FreeRTOS 相关路径添加到includepath 里面


 

5、包含必要头文件

#include "FreeRTOS.h"

#include "task.h"

#include "queue.h"

#include "croutine.h"


到这里 FreeRTOS 基本移植结束了,可以去创建任务并启动调度了。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值