【零基础学习FreeRTOS嵌入式系统】之一:FreeRTOS环境搭建

【零基础学习FreeRTOS嵌入式系统】之一:FreeRTOS环境搭建

一:FreeRTOS系统下载

       在官网上https://www.freertos.org/,找到下载入口。

      或直接进入下载地址https://sourceforge.net/projects/freertos/files/latest/download?source=files。现在的最新版为10.0.0

  在开始移植FreeRTOS前,先介绍下FreeRTOS的源码,源代码目录结构如下所示:

  

 

          FreeRTOS的源码比较少,其核心部分为tasks.c与list.c,其余的几个文件功能都是可选的。include文件夹里面的文件是操作系统相关的头文件,portable文件夹有些奇葩,里面有:

  

  里面的文件几乎都是与平台相关的的,如果你要删掉这里的文件时就必须小心了,并不是所有的文件都能删除的。注意MemMang这个文件夹,里面存放的是FreeRTOS自带的内存管理方案的源代码:

  

二:MDK下移植FreeRTOS

  MDK工程的新建工作。请参照 正点原子 的教程资料,或直接参考https://jingyan.baidu.com/article/454316ab7ad711f7a7c03a1a.html 此链接所示文章。

  我自己工程模板:

   

 

  (1)添加FreeRTOS源文件

    在模板下新建文件夹FreeRTOS文件夹用来存放FreeRTOS的系统文件,再在FreeRTOS的文件夹下新建include文件夹,用来存放h头文件,分开存放利于管理。

    

  (2)拷贝系统文件到指定文件夹(FreeRTOS文件夹)中:

    从FreeRTOS的源文件中找到croutine.c timers.c list.c queue.c tasks.c event_group.c 这6个源文件,位置为FreeRTOSv10.0.0->FreeRTOS->source,拷贝到FreeRTOS文件夹下

    

    从FreeRTOS的源代码中找到port.c文件,位置Source->portable->RVDS->ARM_CM3->port.c 拷贝至FreeRTOS文件夹

     

    从FreeRTOS的源文件中找到heap_4.c文件,位置source->portable->MemMang->heap_4.c,拷贝至FreeRTOS文件夹。

    

    完成移动的FreeRTOS文件目录 ,就这几个文件。

    

    

    (3)拷贝.h文件到指定文件夹(../FreeRTOS/include文件夹)中:

      拷贝FreeRTOS源代码下的include文件夹里的全部.h文件至新建立的include文件夹里,位置:source->include

      从FreeRTOS的源文件中找到portmacro.h文件拷贝至新建立的include文件夹里,文件位置:source->portable->RVDS->ARM_CM3->portmacro.h

      由于我使用的是keil-mdk作为开发工具,使用的是STM32F103VET6为目标芯片,所以需要从FreeRTOS的源文件中找到匹配开发工具与目标芯片的config.h的配置文件。文件在Demo文件夹中,把这个配置文件拷贝FreeRTOS文件夹内。配置文件位置在:

        ->Demo->CORTEX_STM32F103_Keil->FreeRTOSConfig.h。

      至此FreeRTOS操作系统所需要的所有文件已经全部移植完成。

    (4)在工程中添加各系统文件

      在工程中新建FreeRTOS文件夹,添加工程模板中FreeRTOS的所有文件。完成后的工作空间如下;

      

    至此,点击编译按钮,看是否可以通过编译,生成目标hex文件。

 

  

 

转载于:https://www.cnblogs.com/oops-374565452/p/8521996.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值