文章目录FreeRTOS简介及API函数使用方法一 FreeRTOS简介1.1 FreeRTOS是什么1.2 FreeRTOS 特点二 FreeRTOS任务基础2.1 抢占式和非抢占式含义2.2 FreeRTOS任务状态三 FreeRTOS API函数使用方法3.1 任务创建删除3.2 任务控制3.3 调度器控制3.4 软件定时器 FreeRTOS简介及API函数使用方法一 FreeRTOS简介
 准备在移植之前,我们首先要获取到FreeRTOS的官方的源码包。这里我们提供两个下载链接:一个是官网:http://www.freertos.org/ 另外一个是代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/这里我们演示如何在代码托管网站里面下载。打开网站链接之后,我们选择FreeRTOS的最新版本V9.
(文章目录) 前言 本篇文章将作为FreeRTOS最全教程的目录使用。 一、为什么要学FreeRTOS 1.嵌入式系统开发: FreeRTOS 是一款广泛用于嵌入式系统开发的实时操作系统。它可以帮助你构建复杂的嵌入式应用程序,有效管理多个任务和资源。 2.实时性: FreeRTOS 提供了实时性,允许你创建实时任务,确保任务在规定的时间内完成,适用于需要及时响应外部事件的应用,如飞行控制系统、医
原创 2023-10-22 07:28:27
515阅读
(文章目录) 前言 本篇文章将作为FreeRTOS最全教程的目录使用。 一、为什么要学FreeRTOS 1.嵌入式系统开发: FreeRTOS 是一款广泛用于嵌入式系统开发的实时操作系统。它可以帮助你构建复杂的嵌入式应用程序,有效管理多个任务和资源。 2.实时性: FreeRTOS 提供了实时性,允许你创建实时任务,确保任务在规定的时间内完成,适用于需要及时响应外部事件的应用,如飞行控制系统、医
原创 2023-10-25 08:04:53
330阅读
现在准备的简单程序LED灯的工程目录中增加freertos文件夹:在 source目录下的portable目录下只留下下面的文件夹:为什么呢?  把对应文件移植在工程中之后,添加头文件路径如下图:编译之后,报错如下: 提示少了配置文件,那么我们可以在官方demo文件目录下复制一个到我们工程中来。这个时候需要观察一下这个config.h文件,这里更改一点代码:那个条件编
转载 2024-07-02 20:46:15
80阅读
任务创建动态创建:vTaskCreate()。参数:任务函数、命名、堆大小、任务函数参数(没有的话为NULL)、优先级(越大优先级越高)。动态创建只需传入堆的大小,自动分配地址,内部自动生成TCB结构体,该结构体用来初始化任务的一些属性参数。静态创建:vTaskCreateStatic()。参数:任务函数、命名、堆大小、任务函数参数(没有的话为NULL)、优先级(越大优先级越高)。静态创建需要传入
文章目录一、消息队列二、信号量三、互斥量四、事件五、通知 一、消息队列消息队列是一种常用于任务间通信的数据结构, 队列可以在任务与任务间、中断和任务间传递信息。读写队列均支持超时机制。1、创建队列QueueHandle_t xQueueCreate( UBaseType_t uxQueueLength,//队列长度 UBaseType_t uxItemSize );//队列中消息单
@toc学前知识普及对于RTOS初学者或者对RTOS的基础概念不太清楚的同学,请先学习这个视频课程(https://www.bilibili.com/video/BV11h41167iD),在充分理解什么是RTOS之后再开始学习,对于你的学习能达到事半功倍的作用!!image.png(https://s2.51cto.com/images/20211129/1638178620874700.png
原创 2021-12-13 15:46:09
3023阅读
FreeRTOS一、任务FreeRTOS操作系统支持多任务并发执行,可以看成每个任务可以写一个‘main’函数,在死循环里执行。1.任务创建与删除创建(1)任务可以在CubeMx中创建,设置任务名称、优先级、堆栈大小。(2)在程序中:MX_FREERTOS_Init();调用 osThreadCreate来创建一个任务,函数返回一个任务句柄。defaultTask:任务名称StartDefault
转载 2024-03-30 08:36:10
801阅读
1.写在前面:本文章为《STM32MP157开发教程FreeRTOS操作系统篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。stm32mp157是ARM双核,2个A7核,1个M4核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统,STM32MP157开发板所以既可以学嵌入式linux,也可以学s
一,代码解析 /* USER CODE BEGIN Header */ /** ****************************************************************************** * File Name : freertos.c * Desc ...
转载 1月前
414阅读
上一章 【ESP8266-01】MQTT连接百度云(天工物接入)(上) ESP8266 AT指令MQTT连接百度云接上文,前一篇文章呢,我们已经搭建好硬件与网页端了,那么本篇文章将开始使用ESP8266-01 WiFi模块进行连接。4.WiFi连接4.1SSCOM参数配置&使用这里我们推荐使用SSCOM为了方便我们的操作,我们使用SSCOM的拓展功能,单机就可以发送数据了,不用一点一点的自
1.前言访问一个被多任务共享,或是被任务与中断共享的资源时,需要采用”互斥”技术以保证数据在任何时候都保持一致性。这样做的目的是要确保任务从开始访问资源就具有排它性,直至这个资源又恢复到完整状态FreeRTOS 提供了多种特性用以实现互斥,但是最好的互斥方法(如果可能的话,任何时候都当如此)还是通过精心设计应用程序,尽量不要共享资源,或者是每个资源都通过单任务访问。2.本章内容本章期望让读者了解以
转载 2024-05-04 18:41:31
34阅读
1、为啥使用FreeRTOS操作系统还没有说明为啥使用Freertos操作系统啊,市面上那么多操作系统Linux、uCOS、VxWorks…等等,其实有一块linux开发板,嫌弃接线太多了,每次准备大半天,懒得弄它了,等以后有空余地方了在弄它吧….后来就买了块stm32C8T6最小板,一个最小板,一个下载器,加一个串口线,搞定了,后来查了查学哪个操作系统时候发现Freertos啥啥简单啥的
转载 2024-07-22 17:28:42
45阅读
我刚学FreeROTS时想移植到STM32,找了网上很多资料,但大多都不是很完整,于是我把我自己的移植过程分享出来,供大家参考。我们以STM32F103ZE,正点原子的跑马灯实验为例,准备工作:跑马灯实验工程FreeRTOS文件源码(可在官方下载)  第一步  移植文件到工程首先在工程目录新建一个名为FreeRTOS的文件夹然后打开从FreeRTOS官方下载的文件中路
转载 2024-05-07 21:05:16
178阅读
(文章目录) 前言 本篇文章来分析FreeRTOS中的中断,中断在FreeRTOS中也是非常重要的,那么这篇文章将带大家来学习一下FreeRTOS中的中断处理以及涉及到的API等。 一、为什么要为中断设计一套API 1.实时性要求: 中断服务程序通常用于响应实时事件,例如硬件中断、定时器中断等。为了满足实时性要求,中断服务程序必须迅速执行,不能因等待某些资源而阻塞。中断处理必须在规定的时间内完成
原创 2023-11-27 07:26:47
1001阅读
、salvo、Free
转载 2024-08-04 11:38:59
67阅读
(文章目录) 前言 本篇文章将带大家学习任务通知的概念和使用方法。 一、什么是任务通知 FreeRTOS中的任务通知(Task Notification)是一种轻量级的同步机制,允许一个任务通知另一个任务已发生的事件或条件。这对于多任务系统中的协作和同步非常有用。以下是有关FreeRTOS任务通知的详细讲解: 任务通知的作用: 任务通知的主要作用是允许一个任务通知其他任务已发生的事件,而无需使用
原创 2023-11-26 09:35:33
618阅读
(文章目录) 前言 本篇文章来分析FreeRTOS中的中断,中断在FreeRTOS中也是非常重要的,那么这篇文章将带大家来学习一下FreeRTOS中的中断处理以及涉及到的API等。 一、为什么要为中断设计一套API 1.实时性要求: 中断服务程序通常用于响应实时事件,例如硬件中断、定时器中断等。为了满足实时性要求,中断服务程序必须迅速执行,不能因等待某些资源而阻塞。中断处理必须在规定的时间内完成
原创 2023-12-02 20:17:15
368阅读
第15章     FreeRTOS操作系统版本二代示波器实现本章教程为大家讲解FreeRTOS操作系统版本的二代示波器实现。主要讲解RTOS设计框架,即各个任务实现的功能,任务间的通信方案选择,任务栈,系统栈以及全局变量共享问题。同时,工程调试方法也专门做了说明。15.1  注意事项(重要必读)15.2  任务功能划分15.3 &nbsp
转载 2024-08-09 08:17:19
168阅读
  • 1
  • 2
  • 3
  • 4
  • 5