从0开始的FreeRTOS(2)

“从0开始的FreeRTOS”系列教程第二讲

作者:satori

这一期教程中,我们将介绍FreeRTOS源码的内容,如何使用cubemx快速生成一个包含freertos的工程,以及包含freertos的工程的结构。

https://sourceforge.net/projects/freertos/files/FreeRTOS/
在上面的网址中下载FreeRTOS源码之后我们得到一个压缩包

解压之后我们看到如下的文件,其中FreeRTOS文件夹中包含了源码和一些平台上的实例demo,FreeRTOS-Plus下是一些拓展功能的源码和demo,剩下的网页主要是一些介绍性的内容。

这里我们主要关注FreeRTOS文件夹下的内容

Demo下包含了大量已经移植好FreeRTOS的示例工程,包含了不同的硬件平台和开发环境。

Source文件夹下是FreeRTOS的源码,在我们使用FreeRTOS进行工程开发时我们需要将源码移植进工程中,只不过如果借助CubeMX生成工程,我们可以免去手动移植的麻烦

源码搭建的方式我们不加以介绍,可以参见这篇教程
http://www.cnblogs.com/yangguang-it/p/6891427.html

下面我们演示如何使用cubemx生成一个包含FreeRTOS的stm32工程,并控制板子上的两盏流水灯以不同的频率闪烁

cubemx中的配置如下:
Pinout标签下在侧边栏点开FREERTOS并使能,根据自身情况配置时钟(我在这里打开了RCC),SYS中要将Timebase Source改成TIM1,具体的原因会在下一讲中说明,有兴趣者可以看下面的链接
https://www.cnblogs.com/greenlight-xj/p/9683320.html
另外使能板子上的两个引脚作为led输出

在configuration标签页下会发现多了一个FreeRTOS,单击打开,点开Tasks and Queues标签页,双击修改系统默认产生的任务,然后点击Add增加第二个任务,修改内容如下所示



在Project Setting中打开Code Generator标签页,勾选

选项,点击OK

然后generate code

打开MDK,工程文件树如下,可以看见FreeRTOS的源码包含在Middlewares/FreeRTOS下

打开Application/User下的freertos.c,如下修改工程

然后编译,下载,就可以看到两盏led以不同的频率闪烁起来了。并且一个的频率是另一个的两倍。

最后我们就这个工程来说一下包含FreeRTOS的工程的基本结构
首先我们需要找到一个重要的文件,叫做FreeRTOSConfig.h,它的位置在Inc文件夹下。

在这个文件中,可以通过修改宏定义的方式对整个FreeRTOS进行修改,每个宏定义的具体作用我们可以参考官方的文档
https://www.freertos.org/a00110.html

此外在后续的教程里我们会详细讲述各个宏定义的作用。

此外在工程里我们会发现出现了诸如osDelay这些我们在FreeRTOS的API中没有发现的函数,这些函数是Keil提供的一套函数接口,称为CMSIS-RTOS。
https://blog.csdn.net/a389085918/article/details/80016119

在函数定义里我们会发现实际上它们只是对FreeRTOS的API的简单封装,
有关这一类API我们可以参考

https://www.keil.com/pack/doc/CMSIS_Dev/RTOS/html/functionOverview.html

下一讲我们将介绍FreeRTOS的任务管理。

原文地址:https://www.cnblogs.com/sasasatori/p/12231904.html

时间: 2024-08-02 14:30:03

从0开始的FreeRTOS(2)的相关文章

从0开始的FreeRTOS(1)

"从0开始的FreeRTOS"系列教程第一讲 作者:satori 大家好,这次给大家带来了Freertos的教程. 这个系列的教程的主要目的是带大家了解实时系统(real time operating system)的基本概念,熟悉freertos的api使用方法,具备基本的使用rtos进行工程开发的能力 系列计划分几期录完,内容分别为 任务管理 队列管理 软件定时器管理 中断管理 资源管理 事件组 任务通知 本教程的开发环境: 硬件环境 stm32f103ZET6 软件版本 Keil

从0开始的FreeRTOS(4)

"从0开始的FreeRTOS"系列教程第四讲 作者:satori 这一次我们来进行基于FreeRTOS的任务管理实验. 在开讲之前,推荐一下Zou Changjun翻译的FreeRTOS实时内核使用指南(官方网站上的英文原名是Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide),在后面讲解API时我们力求精简易懂,所以不会说太多详细的内容,具体可以参见该文档和官方API手册(文末有本文档的下载链接). 回顾

在Amazon FreeRTOS V10中使用运行时统计信息

在MCU on Eclipse网站上看到Erich Styger在8月2日发的博文,一篇关于在Amazon FreeRTOS V10中使用运行时统计信息的文章,本人觉得很有启发,特将其翻译过来以备参考.原文网址:https://mcuoneclipse.com/2018/08/02/tutorial-using-runtime-statistics-with-amazon-freertos-v10/ FreeRTOS包含一个很好的功能,可以向我提供有关每个任务在系统上运行的时间的信息: Free

1、FreeRTOS移植

目录 1.FreeRTOS目录结构 2.移植 3.FreeRTOSConfig.h 文件分析 正文 1.FreeRTOS目录结构 FreeRTOS FreeRTOS简略目录如下: ├─FreeRTOS │ ├─Demo // 各种开发工具的完整Demo,开发者可以方便的以此搭建出自己的项目,甚至直接使用 │ │ ├─Common // 所有例程都可以使用的演示例程文件 │ │ └─其他 // 对应平台和开发工具的项目例程(命名:平台_开发工具,例如:CORTEX_M4F_M0_LPC43xx_K

鬃嘴释怀说太多就成真不了。

子阻撞砖奏尊仔籽着 释怀说太多就成真不了. http://passport.baidu.com/?business&un=vip&un=%E5%A4%A9%E6%B0%B4%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=vip&un=%E7%99%BD%E9%93%B6%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A

澜星粘鼐贩逊耐盼系甭妊倏纪傲傲sdfghjk

http://passport.baidu.com/?business&un=R&un=%E5%A4%A7%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=R&un=%E4%B9%A1%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.bai

在Ubuntu14.04上OpenStack Juno安装部署

在Ubuntu14.04上OpenStack Juno安装部署 0 安装方式 0.1 安装方式 安装方式 说明 目标 备注 单结点 一台服务器运行所有的nova-xxx组件,同时也驱动虚拟实例. 这种配置只为尝试Nova,或者为了开发目的进行安装.   1控制节点+N个计算节点 一个控制结点运行除nova-compute外的所有nova-services,然后其他compute结点运行nova-compute.所有的计算节点需要和控制节点进行镜像交互,网络交互,控制节点是整个架构的瓶颈. 这种配

2008 SCI 影响因子(Impact Factor)

Excel download 期刊名缩写 影响因子 ISSN号 CA-CANCER J CLIN 74.575 0007-9235 NEW ENGL J MED 50.017 0028-4793 ANNU REV IMMUNOL 41.059 0732-0582 NAT REV MOL CELL BIO 35.423 1471-0072 PHYSIOL REV 35.000 0031-9333 REV MOD PHYS 33.985 0034-6861 JAMA-J AM MED ASSOC 3

【转载】MDK环境下让STM32用上FreeRTOS v8.1.2和FreeRTOS+Trace v2.6.0全过程

[转载]https://www.amobbs.com/thread-5601460-1-2.html?_dsign=6a59067b 本人选择使用FreeRTOS的最大原因就是想使用FreeRTOS+Trace,这是一个图形化的Debug工具,利用这个工具,你可以看到各线程.中断.消息队列等的运行历史,对于新手来说,学习一个操作系统的运行原理是个好工具,而对于工程应用人员而言,它又是一个不可多得的辅助工具,它能让你获得一种"掌控"的感觉,实在是非常好用.现在我把我建立模板工程的整个过程