0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-14 11:47 次阅读

文件描述

目前(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建立的工程、提取的文件、新建的工程,将在下一篇文章中为大家呈现。

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

    关注

    2252

    文章

    10731

    浏览量

    350678
  • 源码
    +关注

    关注

    8

    文章

    606

    浏览量

    28751
  • FreeRTOS
    +关注

    关注

    12

    文章

    474

    浏览量

    61531
收藏 人收藏

    评论

    相关推荐

    文件工程的编译

    文件工程的编译
    的头像 发表于 06-26 13:35 67次阅读
    多<b class='flag-5'>文件</b><b class='flag-5'>工程</b>的编译

    AG32 下使用 freeRTOS 的参考

    \\\\AgRV\\\\examples\\\\freeRTOS 打开工程后,可以先验证简单的运行情况。 这个工程中,并没有 ve 文件(而是使用了默认的 ve
    发表于 05-28 13:34

    建立freertos的stm32工程,用CMSIS_OS做为应用的接口一直实现不了为什么?

    在用过一段时间的cube之后,发现确实是个神器,很方便的就能生成工程。但是对于有强迫症的我,我就想摆脱cube建立一个自己的freertos工程,然后可以用cube来生成一些初始化代
    发表于 05-08 06:43

    在stm32使用freertos时首先要移植startup.s文件将里面的中断函数名对接一下,为什么我找不到?

    问题是这样的,我看了别人的教程在stm32使用freertos时首先要移植startup.s文件将里面的中断函数名对接一下。 但是我在FreeRTOS官网下载的源码里面的demo历程,
    发表于 04-29 07:32

    STM32F207 CubeMx FreeRtos Lwip无法建立多个端口怎么解决?

    刚刚转入Freertos阵营,就遇到了问题,卡住了,在此悬赏200-500大洋求助。 项目信息: CPU:STM32F207VC PHY:KSZ8041NL 协议栈:LWIP OS:Freertos
    发表于 04-23 07:40

    鸿蒙OpenHarmony【创建工程并获取源码

    在通过DevEco Device Tool创建OpenHarmony工程时,可自动下载相应版本的OpenHarmony源码
    的头像 发表于 04-19 21:40 181次阅读
    鸿蒙OpenHarmony【创建<b class='flag-5'>工程</b>并获取<b class='flag-5'>源码</b>】

    用CubeMx创建了Freertos工程Middlewares-&gt;Tgird_Party-&gt;FreeRTOS -&gt;Souce下面只有几个空文件夹为什么?

    我用CubeMx创建了Freertos,发现在工程的Middlewares->Tgird_Party->FreeRTOS ->Souce下面只有几个空文件夹,而没有相
    发表于 03-28 06:20

    用cubemx建立工程描述说找不到Image$$__OpenAMP_SHMEM__$$Base怎么解决?

    哪位大佬有stm32H745ZI的双核通信例程,我用cubemx建立工程描述说找不到Image$$__OpenAMP_SHMEM__$$Base
    发表于 03-25 06:11

    在TC275建立的hightec工程里面,怎么移植ILLD库文件

    在TC275建立的hightec工程里面,怎么移植ILLD库文件,谢谢!
    发表于 01-25 06:38

    如何在INCA的测量文件中记录数据集、ECU描述文件等额外信息?

    是否可以将工作和参考页的数据集、ECU描述文件以及用INCA记录的标定行为保存在测量文件中并且再次导出?
    的头像 发表于 01-17 13:44 867次阅读
    如何在INCA的测量<b class='flag-5'>文件</b>中记录数据集、ECU<b class='flag-5'>描述</b><b class='flag-5'>文件</b>等额外信息?

    如何将UCOSIII系统移植到ADSPBF609建立工程文件中?

    如何将UCOSIII系统移植到ADSPBF609建立工程文件中,编译环境是CCES
    发表于 01-12 08:20

    使用keil 5.24建立工程时,找不到想用的ADUC7039工程文件支持怎么办?

    使用keil 5.24建立工程时,找不到我想用的目标芯片ADUC7039的工程文件支持怎么办?
    发表于 01-11 08:03

    Python 如何对文件系统进行监控提取

    现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。比如说应用到我们之前的高潮提取器:若当前文件夹下增加了一个音乐
    的头像 发表于 11-02 15:25 349次阅读
    Python 如何对<b class='flag-5'>文件</b>系统进行监控<b class='flag-5'>提取</b>

    在STM32F103单片机上移植FreeRTOS

    移植 FreeRTOS 以正点原子的跑马灯工程为基础,在上面扩展。在基础工程中新建一个名为 FreeRTOS文件夹: 创建
    的头像 发表于 09-28 14:39 1376次阅读
    在STM32F103单片机上移植<b class='flag-5'>FreeRTOS</b>

    RA FreeRTOS任务创建

    随着嵌入式应用程序变得越来越复杂,单片机裸机开发已经无法满足工程师对于复杂程序的需求。于是具有多任务调度和实时响应特性的RTOS便越来越受工程师们青睐。瑞萨RA系列MCU兼容FreeRTOS系统
    的头像 发表于 07-12 10:00 355次阅读
    RA <b class='flag-5'>FreeRTOS</b>任务创建