FreeRTOS 源代码结构

本文翻译自 FreeRTOS 官网文章 :http://www.freertos.org/a00017.html

FreeRTOS 源代码结构

基本目录结构

下载的FreeRTOS包含每种处理器体系的源代码以及范例程序。把所有体系的源代码打包可以方便分发,但是文件的数量可能会让人感到畏惧。幸好目录结构非常简单,并且FreeRTOS的实时内核只包含在3个源文件中(如果使用co-routines会有4个)。

 

在最顶层,下载的文件被分为两个子目录:

FreeRTOS

    ¦

    +-Demo     包含范例程序

    ¦

    +-Source    包含实时内核源代码


主要的内核源代码包含在3个与平台无关的源代码中(如果使用co-routines则会有4个)。这些文件分别为:tasks.c、 queue.c 和 list.c,可以在Source目录中找到。

 每种处理器需要少量与体系相关的内核代码。这些与处理器相关的代码包含在Source目录中一个叫Portable的目录中。

 下载的文件中也包含了每种处理器与编译器移植的Demo程序。Demo下的Common文件夹中的文件为各个Demo程序公用文件,其他子目录包含着各特定体系Demo程序的源文件。

FreeRTOS

    ¦

    +-Demo       

    ¦   ¦

    ¦   +-Common   共用的文件

    ¦   +-Dir x    体系x的Demo程序文件

    ¦   +-Dir y     体系y的Demo程序文件

    ¦

    +-Source  

        ¦

        +-Portable  特定处理器代码

Source目录

你必须在makefile中包含实时内核源文件才可以使用FreeRTOS,但并不需要修改它们或了解他们的工作原理。

实时内核的源代码由3个公用的文件(如果使用Co-Routines则为4个)以及一个与你使用的平台相关的文件。公用文件可以在FreeRTOS/Source文件夹中找到,与平台相关的文件可以在FreeRTOS/Source/Portable目录的子文件夹中找到。

 

例如:

如果使用MSP430与GCC编译器:

MSP430平台相关的文件(port.c)可以在FreeRTOS/Source/Portable/GCC/MSP430F449目录中找到,而所有其他FreeRTOS/Source/Portable目录中的子目录均可以忽略

如果使用PIC18与MPLAB编译器:

PIC18平台相关的文件(port.c)可以在FreeRTOS/Source/Portable/MPLAB/PIC18目录中找到,而所有其他FreeRTOS/Source/Portable目录中的子目录均可以忽略

其他平台类似

 

FreeRTOS/Portable/MemMang包含了内存管理部分例子程序。

 

Demo目录

Demo目录树包含各种平台的Demo程序,Demo程序的大部分都是平台无关的,这些代码放在FreeRTOS/Demo/Common文件夹中,参考Demo程序部分获取更多细节。与平台相关的代码,包括Demo程序项目文件,可以在FreeRTOS/Demo的子目录中找到。

 

例如:

如果是构造MSP430 GCCDemo程序:

MSP430 Demo程序makefile可以在FreeRTOS/Demo/MSP430文件夹中找到,所有其他FreeRTOS/Demo目录中包含的子目录(Common目录除外)指向的是其他体系的Demo程序,均可以忽略

如果是构造PIC18 MPLABDemo程序:

PIC18 Demo程序makefile可以在FreeRTOS/Demo/PIC18_MPLAB文件夹中找到,所有其他FreeRTOS/Demo目录中包含的子目录(Common目录除外)指向的是其他体系的Demo程序,均可以忽略

其他平台类似 ...

 


创建你的程序

当你要写自己的应用程序时,一个比较好的方式就是使用Demo程序的makefile(或工程文件)作为出发点。你可以让Source文件夹中的文件保留在 makefile中,并且用你自己的程序文件替换Demo文件夹中的文件。这可以保证makefile中包含的RTOS源文件以及编译器选项都正确。


 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值