FreeRTOS系列第2篇---FreeRTOS入门指南

34481人阅读 评论(2) 收藏 举报
分类:

  FreeRTOS可以被移植到很多不同架构的处理器和编译器。每一个RTOS移植都附带一个已经配置好的演示例程,可以方便快速启动开发。更好的是,每个演示例程都附带一个说明网页,提供如何定位RTOS演示工程源代码、如何编译演示例程、如何配置硬件平台的全部信息。

      演示例程说明网页还提供基本的RTOS移植细节信息,包括如何编写FreeRTOS兼容的中断服务例程,不同架构的中断处理会稍有不同。

      通过下面的简单说明,可以在几分钟内运行RTOS。

1.查找相关文档页

       FreeRTOS具有详细的开发说明文档,可以在其官方网站上查看。首先打开官方网站,目前的网站地址是:http://www.freertos.org。在首页左侧的导航栏中,展开"Supported Devices & Demos"菜单项,单击"OfficiallySupported Demos"链接,去查看FreeRTOS支持的微控制器制造商列表。单击微控制器制造商名称,进入具体的制造商文档页面列表。

2.获取RTOS源代码

       到FreeRTOS官方网站下载源码,下载包包含RTOS内核源码和官方移植演示工程。解压缩后放到合适的目录下。(如果你不想访问慢吞吞的国外网站,我在CSDN做了一个镜像,可以 点击此处 ,这篇文章中有最新的大部分FreeRTOS源码包下载链接)

       每一个RTOS移植包都附带有预先配置好的演示例程 ,已经创建好了所有必须的RTOS源文件并包含了必须的RTOS头文件。推荐在提供的演示例程的基础上进行自己的FreeRTOS应用编程。

3.FreeRTOS源码目录结构

       FreeRTOS下载包中包含每个处理器移植和演示例程的源码。将所有移植包放入一个下载文件中大大简化了分类处理,但是下载包中的文件数量也多的惊人!无论如何,目录结构还是非常简单的,并且FreeRTOS实时内核仅仅只有3个文件(如果需要,还有一些附加文件,比如软件定时器、事件组以及协程)。

      下载包目录包含两个子目录:FreeRTOS和FreeRTOS-Plus。如下所示:

  • FreeRTOS-Plus          包含FreeRTOS+组件和演示例程;
  • FreeRTOS                   包含FreeRTOS实时内核源文件和演示例程。

      FreeRTOS-Plus目录树包含多个自述文件(Readme)。接下来本文只描述FreeRTOS内核的核心源文件和演示例程,它们又被分成两个主要的子目录,如下所示:

    FreeRTOS
      |+-- Demo     包含演示例程工程;
      |+-- Source   包含实时内核源文件。

      RTOS代码的核心包含在三个文件中:tasks.c、queue.c、list.c。这三个文件位于FreeRTOS/Source目录。在该目录下还包含三个可选的文件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。

      FreeRTOS/Source目录结构如下所示:

    FreeRTOS
        | +-- Source  FreeRTOS内核代码文件
        |   |+-- include          FreeRTOS内核代码头文件
        |   |+-- Portable         处理器特定代码
        |   |  |+--Compiler x     支持编译器x的所有移植包
        |   |  |+--Compiler y     支持编译器y的所有移植包
        |   |  |+--MemMang        内存堆实现范例

      每个支持的处理器架构需要一小段与处理器架构相关的RTOS代码。这个是RTOS移植层,它位于FreeRTOS/Source/Portable/[相应编译器]/[相应CPU架构]子目录。

      对于FreeRTOS,堆栈设计也属于移植层。FreeRTOS/Source/portable/MemMang目录下heap_x.c文件给出了多种堆栈方案,后续文章将会详细介绍堆栈操作。

      移植层目录举例:

  • 如果在GCC编译器下使用TriCore1782:TriCore特定文件(port.c)位于FreeRTOS/Source/Portable/GCC/TriCore_1782目录下。FreeRTOS/Source/Portable 子目录下的所有文件,除了FreeRTOS/Source/Portable/MemMang目录外都可以忽略或删除。
  • 如果在IAR编译器下使用Renesas RX600:RX600特定文件(port.c)位于FreeRTOS/Source/Portable/IAR/RX600目录下。FreeRTOS/Source/Portable 子目录下的所有文件,除了FreeRTOS/Source/Portable/MemMang目录外都可以忽略或删除。

      FreeRTOS下载包中还包含各种处理器架构和编译器的演示例程。大多数的演示例程代码对所有移植都是通用的,位于FreeRTOS/Demo/Common/Minimal目录。FreeRTOS/Demo/Common/Full目录下的是历史遗留代码,仅用于PC。

      FreeRTOS/Demo目录结构如下所示:

    FreeRTOS
      |+-- Demo
      |  |+-- Common          所有例程都可以使用的演示例程文件
      |  |+-- Dir x           用于x平台的演示例程工程文件
      |  |+-- Dir y           用于y平台的演示例程工程文件

      FreeRTOS/Demo目录下剩余的子目录包含预先配置好的工程,可以用于构建个人演示例程。子目录的命名与移植平台和编译器相关。每一个RTOS移植包都有自己的说明文档。

      演示例程目录举例:

  • 如果以英飞凌TriBoard开发板硬件构建TriCoreGCC演示例程:TriCore演示例程工程文件位于FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC目录。目录FreeRTOS/Demo下的所有子目录(Common目录除外)都可以忽略或删掉。
  • 如果以RX62N硬件构建Renesas RX600 IAR演示例程:IAR工程文件位于FreeRTOS/Demo/RX600_RX62N-RDK_IAR目录。目录FreeRTOS/Demo下的所有子目录(Common目录除外)都可以忽略或删掉。

4.编译工程

      根据上一节FreeRTOS源码目录结构说明的RTOS演示工程的所在的位置,打开并编译演示工程。

5.运行演示例程

      演示例程附带的说明网页会介绍如何配置硬件、下载程序和执行演示例程。说明网页还会提供演示例程的功能信息,这样你就可以判断演示例程执行是否正确。

 

查看评论

FreeRTOS学习笔记一:移植FreeRTOS与使用规范

对于一个单片机工作者而言,在写习惯了单流水式的程序后,习惯了写状态机,标志位等后,肯定会想在单片机中跑系统,减轻工作量,个人认为FreeRTOS是首选,原因肯简单:开源;只有开源才会有越来越多的企业和...
  • qq_18707505
  • qq_18707505
  • 2017-03-27 17:04:55
  • 347

FreeRTOS 学习之环境搭建-只需几分钟

准备条件: 1.keil5安装软件 2.keil4安装软件keil5 和keil4 先安装好。 下载FreeRTOSv9.0.0,去官网下载即可 双击并解压,生成文件夹FreeRTOSv9.0....
  • cyfhan
  • cyfhan
  • 2016-07-29 09:56:31
  • 4562

[FreeRTOS系列教程]学习FreeRTOS前的准备工作-----初学者必看

了解FreeRTOS之前,一定要搞清楚FreeRTOS, SafeRTOS和OpenRTOS之间的关系 1. 先说FreeRTOS和OpenRTOS FreeRTOS和OpenRTOS的共享相同的源...
  • robertsong2004
  • robertsong2004
  • 2014-08-24 17:19:20
  • 30916

FreeRTOS操作详细系统教程

  • 2017年10月29日 09:09
  • 10.1MB
  • 下载

FreeRTOS中文实用教程

  • 2012年06月14日 14:01
  • 3.05MB
  • 下载

FreeRTOS操作系统教程,支持F103,F407和F429,配套145个例子,1200页教程

本内容转自:http://blog.sina.com.cn/s/articlelist_2565749395_12_1.html 1. FreeRTOS最大的优势就是开源免费,商业使用的话不需要用户公...
  • ZhaoFa_JLU
  • ZhaoFa_JLU
  • 2016-10-07 09:41:38
  • 1448

自己搜集的一些FREERTOS的教程和资料

  • 2015年06月12日 08:58
  • 4.43MB
  • 下载

FreeRTOS教程

  • 2016年12月05日 21:03
  • 39.27MB
  • 下载

FreeRTOS参考手册

一.设计 特征 FreeRTOS提供了一些标准的特征。 RTOS调度策略的选择: 1.抢占式,总是运行可用的最高优先级的任务。相同优先级的任务共享CPU时间(抢占兼具有时间片轮转) 2.协作...
  • bawangwang
  • bawangwang
  • 2015-10-15 15:03:57
  • 723

FreeRTOS实时内核使用指南_中文

  • 2016年12月02日 22:57
  • 2.89MB
  • 下载
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 169万+
    积分: 1万+
    排名: 1162
    博客专栏
    最新评论
    友情链接