FreeRTOS_002_ 源码文件描述与提取建立工程

描述

文件描述

目前(2017年08月)官网最新版本的FreeRTOS是V9.0.0(其他某些地方已经出现了V9.1.0),我们以官网最新为准,使用V9.0.0版本来进行讲述。

解压下载的FreeRTOSv9.0.0源码,我们可以看见如下一些文件:

FreeRTOS

预览:

FreeRTOS

1.FreeRTOS V9和之前版本相比

a.V9内核源码(FreeRTOS/Source)有较大差异,其他部分(如Demo例程及FreeRTOS-Plus下)的代码基本都一样;

b.目录结构一样,也就是各个目录下的文件一样(只是文件里面内容有差别)。

2.文件描述

细心的朋友可能会发现,解压后的源码每一个目录下都有一个“readme.txt”文件和一些网页链接文件。这两样文件就是对所在目录最好的描述,为了方便初学者,我简单讲述一下各层目录及目录下文件的意思。

第一层目录:

FreeRTOS:包含Demo例程和内核源码(比较重要,我们就需要提取该目录下的大部分文件);

FreeRTOS-Plus:包含组件源码和组件对应的Demo例程。这里组件可以理解为扩展功能,如:CLI(Command-Line Interface)命令行界面、FAT文件系统。针对初学者,这里的内容可以暂时不学。

New - Direct to Task Notifications:任务相关描述的网页链接;

New - FreeRTOS+TCP:FreeRTOS与TCP/IP协议栈相关描述的网页链接。上一篇文章有朋友留言说FreeRTOS没有自己支持的GUI,我相信后面应该会增加属于自己的GUI。

Quick_Start_Guide:快速指南,将指导你如何快速移植并在自己的平台运行FreeRTOS。建议初学者多看看这个网页下的内容。

readme:自述文件,讲述该目录下各个文件的文件。

Upgrading-to-FreeRTOS-9:版本升级相关说明的网页链接。比如:向下兼容、创建任务静态分配等更新说明:

-Backward Compatibility

-Completely Statically Allocated Systems

-Creating Tasks and Other RTOS Objects Using Statically Allocated RAM

-Forcing an RTOS Task To Leave the Blocked State

-Deleting Tasks

-Obtaining a Task Handle from the Task Name

-Other Changes

第二层目录:

FreeRTOS\Demo:这个目录下内容就是Deme例程,我们可以直接打开里面的工程文件,有对应的平台(开发板)就可以跑起FreeRTOS提供的例程。

提示一下:这里的Demo例程很多都是比较老的,只是后面陆续有新增进来。拿CORTEX_STM32F103_Keil来说,这都是零几年Uv2的老工程了。为什么我们需要重新移植,就是这例程太老了,不然我们都直接使用这里的工程了。

FreeRTOS\License:许可文件。

FreeRTOS\Source:内核源码(不用说在,重要文件,移植就是提取该目录文件)

links_to_doc_pages_for_the_demo_projects:例程说明,比较重要,详细列出不同厂家的Demo例程并讲述了每一个例程重要的信息,如下:

FreeRTOS

FreeRTOS

FreeRTOS-Plus\Demo:和上面的Demo类似,这里只是划分为Plus里面。

FreeRTOS-Plus\Source:组件源代码。

重要的一些目录:

FreeRTOS\Source\portable\MemMang:内存管理,操作系统都有自己的内存管理,这里有五个源文件heap_1.c 至 heap_5.c。简单来说,5种内存管理方式,我们只用一种。

FreeRTOS\Source\portable\IAR:关于EWARM相关的底层接口;

FreeRTOS\Source\portable\RVDS:关于MDK-ARM相关的底层接口;

提取有用文件建立工程

我们以STM32F103 + MDK-ARM来举例。

1.提取FreeRTOS中有用文件

通过上面的分析,相信大家对解压后的文件都有所了解了,我们主要提取FreeRTOS\Source这个目录下的文件 +FreeRTOS\Demo下对应芯片工程中的FreeRTOSConfig.h。

提示:FreeRTOS\Source\portable目录下是与底层相关的接口,与底层关联,我们许多都用不上,

我们主要提取三个文件:

MemMang:内存管理代码;

IAR:使用EWARM相关的底层代码;

RVDS:MDK-ARM相关的底层代码;

2.建立工程

这一节建立工程的内容我不会从头到尾讲述,新建工程我已经讲述的很详细,不懂的可以参看我下面两篇文章。我们只是需要在之前新建STM32工程的基础上添加FreeRTOS相关源代码即可。

1.MDK-ARM_新建软件工程详细过程

2.EWARM_新建软件工程详细过程

在MDK-ARM中添加之后,如下图:

FreeRTOS

EWARM建立的工程、提取的文件、新建的工程,将在下一篇文章中为大家呈现。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分