FreeRTOS源代码结构与基本目录

来源: FreeRTOS 官网 作者:技术编辑archive12017年11月18日 02:02
关键词:FreeRTOSrtos

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源文件以及编译器选项都正确。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:

相关阅读

发表评论

elecfans网友

分享到:

用户评论(0