欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 基于STM32F103的FreeRTOS系列(四)·FreeRTOS资料获取以及简介

基于STM32F103的FreeRTOS系列(四)·FreeRTOS资料获取以及简介

2025/2/24 16:16:09 来源:https://blog.csdn.net/MANONGDKY/article/details/140731868  浏览:    关键词:基于STM32F103的FreeRTOS系列(四)·FreeRTOS资料获取以及简介

目录

1.  FreeRTOS简介

1.1  FreeRTOS介绍

1.2  为何选择FreeRTOS

1.3  FreeRTOS资料获取

1.3.1  官网下载

1.3.2   Github下载

1.3.3  托管网站下载

1.4  FreeRTOS的编程风格

1.4.1  数据类型

1.4.2  变量名

1.4.3  函数名

1.4.4  宏


1.  FreeRTOS简介

1.1  FreeRTOS介绍

FreeRTOS是一个可裁剪的小型RTOS系统,其特点包括:

① FreeRTOS 的内核支持抢占式,合作式和时间片调度。

② SafeRTOS 衍生自 FreeRTOS,SafeRTOS 在代码完整性上相比 FreeRTOS更胜一筹。

③ 提供了一个用于低功耗的 Tickless 模式。

④ 系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、软件定时器等等。

⑤ 已经在超过 30 种架构的芯片上进行了移植。

⑥ FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元,如 STM32F407.

⑦ FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。

⑧ 高可移植性,代码主要 C 语言编写。

⑨ 支持实时任务和协程(co-routines 也有称为合作式、协同程序,我在这里使用的均成为协程)。

1.2  为何选择FreeRTOS

① 开源和免费:FreeRTOS是开源的实时操作系统,遵循MIT许可证,可以免费获取和使用。这使得它成为许多嵌入式开发者和企业的首选,特别是在成本和许可证限制方面较为敏感的项目中。

② 轻量级和高效:FreeRTOS设计精简,专注于提供基本的实时调度和任务管理功能,适合资源有限的嵌入式系统。它的内核非常小巧,具有低的内存占用和快速的上下文切换时间,能够在各种处理器架构上高效运行。

③ 广泛的架构支持:FreeRTOS支持多种处理器架构和开发板,包括ARM Cortex-M,ESP32,PIC,以及多个仿真器和开发板,这使得它在不同项目和硬件平台上都能得到广泛应用。

④ 丰富的特性和生态系统:尽管FreeRTOS本身非常轻量,但它提供了许多丰富的特性,如任务管理、消息队列、信号量、软件定时器等,可以满足大多数嵌入式系统的实时需求。同时,FreeRTOS拥有活跃的社区和丰富的生态系统,提供了许多额外的组件和驱动程序,可以加速开发过程并提供可靠的支持。

⑤ 成熟和可靠性:FreeRTOS经过多年的发展和使用,在工业和商业应用中已被广泛验证和采用,具有高度的成熟性和可靠性,适合要求高可靠性和稳定性的应用场景。

⑥ 易于学习和使用:FreeRTOS的API设计简洁清晰,易于理解和使用。它提供了详细的文档和示例,对于初学者和经验丰富的开发者都是友好的选择。

1.3  FreeRTOS资料获取

1.3.1  官网下载

官网下载链接:FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensionsFreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensionsFreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions

手动输入链接:www.freertos.org 

1.3.2   Github下载

Github下载:GitHub - FreeRTOS/FreeRTOS: 'Classic' FreeRTOS distribution. Started as Git clone of FreeRTOS SourceForge SVN repo. Submodules the kernel.

 

1.3.3  托管网站下载

FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions

        在该网站可以找到,以前发行的版本: 

        找到自己想要下载的版本,点击进入如下界面:

        其中两个文件均可下载。

注意:以上文件下载完后,我试了一下,进行解压的话,会提示文件过多,解压不了,我试了另一台电脑上面用的360解压的软件给解压出来了,然后我准备上传到百度网盘,发现由于文件过多,上传和下载速度也是非常感人。现在没有好的解决办法,后续发现好的解决办法会发到:FreeRTOS_时光の尘的博客-CSDN博客

1.4  FreeRTOS的编程风格

1.4.1  数据类型

        FreeRTOS对C语言中的一些数据类型的命名,进行了重定义,以下是部分:

1.4.2  变量名

        比如char型变量的前缀是c, short型变量的前缀是s, long型变量的前缀是1, portBASE_TYPE类型变量的前缀是x。还有其他的数据类型,比如数据结构,任务句柄,队列句柄等定义的变量名的前缀也是 x。

        如果一个变量是无符号型的那么会有一个前缀 u,如果是一个指针变量则会有一个前缀 p。因此,当我们定义一个无符号的 char 型变量的时候会加一个 uc前缀,当定义一个char型的指针变量的时候会有一个pc前缀。

1.4.3  函数名

        如果是私有的函数则会加一个prv (private)的前缀。

①vTaskPrioritySet()函数的返回值为 void型,在task.c这个文件中定义。

②xQueueReceive()函数的返回值为 portBASE_TYPE 型,在 queue. c这个文件中定义。

③vSemaphoreCreateBinary()函数的返回值为 void型,在semphr.h 这个文件中定义。

1.4.4  宏

FreeRTOS_时光の尘的博客-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词