一、FreeRTOS之FreeRTOS简介

目录

一、什么是FreeRTOS?

二、为什么选择FreeRTOS?

三、FreeRTOS的特点

四、FreeRTOS资料与源码下载

五、FreeRTOS源码文件介绍


一、什么是FreeRTOS?

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类操作系统。

操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行的哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。

某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix操作系统,FreeRTOS操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。

FreeRTOS是RTOS系统中的一种,FreeRTOS十分的小巧,可以在资源有限的微控器中使用,当然FreeRTOS不仅仅局限于在微控器中使用,但从文件数中来说FreeRTOS要比uc/OS小的多。

二、为什么选择FreeRTOS?

RTOS类系统有很多,比如说UC/OS,资料很多,尤其是中文资料,那为什么要选择FreeRTOS呢?

2.1 FreeRTOS是免费的,学习RTOS操作系统的话,UC/OS是首先,但是做产品的话,免费的FreeRTOS操作系统就是个不错的选择。

2.2 很多半导体厂商产品的SDK(Software Development Kit)软件开发工具包,就使用FreeRTOS作为其操作系统,尤其是WIFI、蓝牙这些带有协议栈的芯片或模块。

2.3 简单,因为FreeRTOS的文件数量很少。

三、FreeRTOS的特点

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

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

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

③系统的组件在创建时可以选择动态或者静态的RAM,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。基本可以满足较小系统的应用。

④FreeRTOS-MPU支持Core-M系列中的MPU单元,如STM32F429。

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

⑥高移植性,代码主要用c语言编写。

⑦高效的软件定时器。

⑧强大的跟踪执行功能。

⑨堆栈溢出检测功能。

⑩任务数量不限、任务优先级不限。

四、FreeRTOS资料与源码下载

找资料最好在官网下载,FreeRTOS的官网是:www.freertos.org。

①进入FreeRTOS官网首页,就会看到download下载链接

②进入后下载“FreeRTOS 202112.00”文件,下载完成后解压到指定目录。

由于该网址是国外网站,建议翻墙下载,否则加载的非常慢。

五、FreeRTOS源码文件介绍

打开源码文件夹,重点看上面的两个文件夹:FreeRTOS和FreeRTOS-Plus,这两个文件里面的文件就是FreeRTOS的源码。

①FreeRTOS文件夹

打开FreeRTOS文件夹,可以看到里面有四个文件夹:

Demo文件夹里面就是FreeRTOS针对不同的MCU提供的相关例程,进行程序移植的时候可以参考这些例程。

License文件夹里面的就是相关许可信息。

Source文件里面就是FreeRTOS的源代码文件,include文件夹是一些头文件,移植的时候也是需要的,下面这些c文件就是FreeRTOS的源代码文件,移植的时候也是需要的。

重点来看一下portable这个文件夹,FreeRTOS是个系统,归根结底是软件的东西,它是怎么和硬件联系在一起的呢?那么中间就必须有一个桥梁,portable文件夹里面的东西就是FreeRTOS系统和具体的硬件之间的连接桥梁。不同的编译环境,不同的MCU,其桥梁是不同的,打开portable文件夹,如下图所示:

MemMang这个文件夹就是跟内存管理相关的,我们移植的时候是必须的。Keil文件夹里面的东西也是必须的,但是我们打开keil文件夹以后里面只有一个文件:See-also-the-AVDS-directory.txt,意思是参考RVDS文件夹里面的东西!

RVDS文件夹针对不同架构的MCU做了详细的分类,GD32F103C8T6就参考CORTEX_STM32F103_Keil,打开CORTEX_STM32F103_Keil文件夹,里面有两个文件就是我们移植的时候所需要的。

  • 24
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
cjson库是一个轻量级的JSON解析器和生成器库。它适用于嵌入式系统,特别是在FreeRTOS实时操作系统中使用。 cjson库是一个简单且易于使用的库,因此它在FreeRTOS中得到了广泛的应用。它提供了一组函数,可以将JSON字符串解析为一个C语言中的对象,或者将C语言对象转换为JSON字符串。这些功能非常有用,可以在嵌入式系统中处理JSON数据。 使用cjson库,我们可以轻松地解析和生成JSON数据。例如,我们可以使用cjson库将传感器数据以JSON格式发送到远程服务器。在服务器端,可以使用cjson库将该JSON数据解析为对象,以便进行进一步的处理和分析。 另外,cjson库还提供了一些功能,可以让我们在C语言中方便地访问JSON数据。例如,我们可以通过cjson库获取JSON对象的键值对,或者在JSON数组中遍历元素。这些功能对于处理复杂的JSON数据结构非常有帮助。 在FreeRTOS中使用cjson库并不复杂。我们只需要将cjson库的源文件添加到FreeRTOS项目中,并在需要的地方包含相应的头文件。然后,我们就可以调用cjson库中的函数来解析和生成JSON数据。 总之,cjson库是一个非常实用的组件,它为嵌入式系统中处理JSON数据提供了便利。使用cjson库,可以轻松地解析和生成JSON数据,并且可以方便地在C语言中访问JSON数据的各个部分。在FreeRTOS中使用cjson库可以提高开发效率并简化代码实现。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I am Supreme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值