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相关源代码即可。
1.mdk-arm_新建软件工程详细过程
2.ewarm_新建软件工程详细过程
在mdk-arm中添加之后,如下图:
ewarm建立的工程、提取的文件、新建的工程,将在下一篇文章中为大家呈现。

你付出耐心,它回报好声音—达音科 Dunu 隼 耳机开箱
手机界的“全球第一”大盘点
iOS11第一个公测版上线推出 各种新功能块用起来
正确的认识网络能力
点焊机的焊接过程
FreeRTOS_002_ 源码文件描述与提取建立工程
虚拟闽控密封铅酸蓄电池测试系统总体框图
一文了解人工智能在企业当中现状
机器视觉检测方法可大大提高生产效率和生产的自动化程度
Aigtek亮相压电和声波理论及器件应用研讨会!一起用测试改变未来!
数字电源市场发展趋势
光栅化的基础思想与三维场景的基本流程
未来几年全球智能传感器市场规模有望达到数千亿
华为nova系列荣获全国手机单品销量第一
关于C型双极晶体管LNA和射频电路设计的研究分析
中国电信解读《人工智能发展白皮书》:分三阶段打造“随愿网络”
英国首个无补贴光伏储能站Anesco被转卖给GRIDSERVE
中科曙光数创液冷产业创新基地奠基 将服务先进计算、数据中心等
国际巨头、造车新势力纷纷布局固态电池技术赛道
反相/同相比例放大器电路分析