FreeRTOS_002_源码文件描述与提取建立工程
Ⅰ文件描述
目前(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相关源代码即可。
在MDK-ARM中添加之后,如下图:
EWARM建立的工程、提取的文件、新建的工程,将在下一篇文章中为大家呈现。
Ⅲ最后
微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,在我的底部菜单查看更多精彩内容!
长按识别图中二维码 关注
点个赞也是支持一下!