查看原文
其他

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

strongerHuang strongerHuang 2021-01-31


文件描述

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


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


预览:


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-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中添加之后,如下图:


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


最后

微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,在我的底部菜单查看更多精彩内容!

长按识别图中二维码 关注


 点个赞也是支持一下!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存