freertos专题

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

FreeRTOS学习笔记(六)队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、队列的基本内容1.1 队列的引入1.2 FreeRTOS 队列的功能与作用1.3 队列的结构体1.4 队列的使用流程 二、相关API详解2.1 xQueueCreate2.2 xQueueSend2.3 xQueueReceive2.4 xQueueSendFromISR2.5 xQueueRecei

FreeRTOS学习笔记(二)任务基础篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 任务的基本内容1.1 任务的基本特点1.2 任务的状态1.3 任务控制块——任务的“身份证” 二、 任务的实现2.1 定义任务函数2.2 创建任务2.3 启动任务调度器2.4 任务的运行与切换2.4.1 利用延时函数2.4.2 利用中断 2.5 任务的通信与同步2.6 任务的删除2.7 任务的通知2

FreeRTOS学习笔记(四)Freertos的中断管理及临界保护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Cortex-M 中断管理1.1 中断优先级分组1.2 相关寄存器1.3 相关宏定义1.4 FreeRTOS 开关中断 二、临界段及其保护2.1 taskENTER_CRITICAL( ) 和 taskEXIT_CRITICAL( )2.2 taskENTER_CRITICAL_FROM_ISR( )

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

FreeRTOS学习笔记—④RTOS通信管理篇/同步互斥与通信(正在更新中)

二、RTOS的核心功能   RTOS的核心功能块主要分为任务管理、内核管理、时间管理以及通信管理4部分,框架图如下所示:   (1)任务管理:负责管理和调度任务的执行,确保系统中的任务能够按照预期运行。   (2)内核管理:负责系统核心功能的管理,包括内存、中断、异常处理和系统启动等。   (3)时间管理:负责所有与时间相关的操作,包括系统时钟、定时器、任务延迟和周期性任务的执行。   (4)通

基于STM32的RTOS--freertos的使用(HAL实现多任务)

一:STM32cubemx配置         1:工程建立                         (1)打开stm32cubemx  点击进入芯片选择页面                                         (2)选择对应的芯片型号双击         2:调试接口配置                  3:时钟设置

智能家居系统(基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现)

视频演示:基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现的智能家居项目_哔哩哔哩_bilibili 基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现的智能家居项目: https://pan.baidu.com/s/1f41gAfOOnlcQoKoMx3o84A?pwd=6j2g 提取码: 6j2g  注:本项目为学习完《江科大STM32教

FreeRTOS(二)FreeRTOS任务创建和删除

目录 函数介绍 动态创建任务函数 函数xTaxkCreate() 任务句柄 任务句柄的作用 获取任务句柄  使用任务句柄 实现动态函数创建任务流程 动态创建任务函数内部实现 静态创建任务函数 实现静态函数创建任务流程 静态创建内部实现 删除任务函数 参数说明 功能描述 注意事项 动态方法的任务创建和删除 FreeRTOS 最基本的功能就是任务管理,而任务

STM32CUBEIDE FreeRTOS操作教程(四):timer软件定时器

STM32CUBEIDE FreeRTOS操作教程(四):timer软件定时器 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例,只用到USB,USART1极少的接口,体现FreeRTOS的各种操作过程。 操作教程(四)配置FreeRTO

FreeRTOS线程数据传递---消息队列

简介       队列操作 创建队列 队列写入 队列写入 队列读取 队列相关函数 1.创建队列 2.向队列写入 3.从队列读取 队列的其他写入API函数 简介               在实际的项目开发中,经常会遇到在任务于任务之间或任务于中断之间需要进行“沟通交 流”,这里的“沟通交流”就是消息传递的过程。在不使用操作系统的情况下,函数与函数,或 函数与中断之间

SGM41511电源管理芯片与STM32L496通讯源码虚拟I2C协议实测成功读写cubemx设置裸机和freertos操作系统源码通用

不用它的I2C设置,容易出错不通讯,只打开GPIO输出就可以; 如果是RTOS的话请打开系统定时器提供参考时间基准,那个定时器都行; 以下是经过验证的代码,同样适用于SGM同类系列电源管理芯片; 准备好jlink进行RTT打印观测: SGM41511.c /**************************************************************

FreeRTOS线程同步1---信号量

目录 二值信号量 二值信号量相关API函数 一般使用方法为 1.创建二值信号量 2.在一个任务中置为二值释放信号 3.在另一个任务中获取信号 计数信号量 计数型信号量相关 API 函数 使用方法 1.创建计数信号量 2.释放计数信号量 3.获得信号量的当前值 4.释放信号量 互斥信号量 互斥信号量常用API函数 使用方法         信号量是一种解决同

FreeRTOS基础入门——FreeRTOS队列及其API函数介绍(十二)

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755@qq.com] 📱个人微信:Vir2025WBY 🖥️个人公众号:科技妄北🖋️本文为妄北y原创佳作,独家首发于CSDN🎊🎊🎊💡座右铭:改造世界固然伟大,但改造自我更为可贵。 专栏导航: 妄北y系列专栏导航: 物

FreeRTOS中任务通知的使用

目录 0x01 任务通知介绍0x02 示例代码 0x01 任务通知介绍 简单举个例子: 例如任务一用于获取数据,任务二用于处理数据。 但这其中存在一个先后关系:必须等到任务一获取完了数据,任务二才能开始工作,你会如何选择何种实现方式呢? 未引入操作系统时,轮询系统会按照代码顺序执行,触发中断时,你可以通过设置一个获取原始数据的函数完成的全局变量作为标志位是否为1来判断是否完

龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

STM32CubeMX生成freertos默认设置卡死,卡在HAL_Init不动,裸机运行程序正常跑,解决方法

1、简介 最近通过STM32CubeMX生成freertos发现任务不执行,卡在HAL_Init不动,网上找很久不好使,刚开始怀疑硬件问题,但是裸机运行程序正常跑,然后怀疑软件有问题,但是对F1,F3系列都好使,仅仅对F4系列不行,然后通过对F4固件包升级得以解决。 2、解决办法 找到F4,点击Refresh刷新,然后安装。

【ESP-IDF FreeRTOS】信号量

下一个内容,信号量。 先包含头文件。 #include "freertos/semphr.h" 我们通过队列可以进行任务间的数据传递,也可以通过队列来控制任务间的同步。如果我只需要控制任务而不需要传递数据,那么我们完全可以用信号量来代替队列。 简单介绍一下信号量,它约等于是没有容量的队列,或者把它当成是一个计数器。我们对信号量的操作有加一和减一。 如果信号量当前的值为0并且我需要进行减一

【FreeRTOS】使用互斥量解决优先级反转

目录 0 前言0 引言1 互斥量_领导临时提拔你(解决优先级反转)2 怎么使用互斥量3 bug4 总结 0 前言 学习视频: 【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 【精准空降到 08:07】 https://www.bilibili.com/video/BV1Jw411i7Fz/?

【FreeRTOS】信号量实验-优先级反转

目录 0 前言0 引言2 问题复现2.1 Car1Task2.2 Car2Task2.3 Car3Task 4. 互斥量_领导临时提拔你(解决优先级反转) 0 前言 学习视频: 【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 【精准空降到 03:06】 https://www.bilibil

FreeRTOS 列表 List 源码解析

目录 一、链表及链表项的定义1、链表节点数据结构 xList_ITEM2、链表精简节点结构 xMINI_LIST_ITEM3、链表根节点结构 xLIST 二、链表的相关操作1、初始化1.1 链表节点初始化1.2 链表根节点初始化 2、插入2.1 将节点插入到链表的尾部2.2 将节点按照升序排列插入到链表 3、删除4、宏函数 链表是 FreeRTOS 的核心数据结构,有关任务调

FreeRTOS学习笔记>软件定时器

1. 软件定时器的概念 软件定时器是一种用于在特定时间后触发事件的机制,类似于现实生活中的闹钟。用户可以通过设置定时器来指定某个事件发生的时间和频率,并在时间到达时调用预定义的回调函数。与硬件定时器不同,软件定时器由操作系统提供,构建在硬件定时器之上,具有更高的灵活性。 2. 硬件定时器 vs. 软件定时器 硬件定时器: 功能:芯片自带的定时功能,通常由外部晶振提供时钟输入,经过计数后触发中

FreeRTOS 快速入门(八)之任务通知

目录 一、任务通知1、基本概念2、优势及限制3、通知状态和通知值 二、任务通知的使用1、xTaskNotifyGive/ulTaskNotifyTake2、xTaskNotify/xTaskNotifyWait3、xTaskNotifyAndQuery 一、任务通知 1、基本概念 FreeRTOS 从 V8.2.0 版本开始提供任务通知这个功能,每个任务都有 一个 32

【GD32】FreeRTOS实时操作系统移植(GD32F470ZGT6)

1. 简介         在日常的应用开发项目中,常常需要单片机具有处理多种任务的需求,如果使用裸机开发那么肯定是不现实的,因为受限于IO与处理器的巨大速度差异,在裸机下处理器常常要等待当前IO操作完成才能进行下一个任务,效率大打折扣。         因此使用实时操作系统成为首选,市面上比较火的的实时操作系统有很多,像这里要介绍的FreeRTOS就是其中之一。FreeRTOS可以说是非常老

【FreeRTOS】SoftwareTimer软件定时器

SoftwareTimer软件定时器 软件定时器定时器服务/Daemon任务定时器相关配置FreeRTOSConfig.h1、configUSE_TIMERS2、configTIMER_TASK_PRIORITY3、configTIMER_QUEUE_LENGTH4、configTIMER_TASK_STACK_DEPTH 单次定时器和周期定时器复位软件定时器API创建软件定时器API开启软