freertos专题

【FreeRTOS】任务管理与调度

文章目录 调度:总结 调度: 相同优先级的任务轮流运行最高优先级的任务先运行 可以得出结论如下: a 高优先级的任务在运行,未执行完,更低优先级的任务无法运行b 一旦高优先级任务就绪,它会马上运行(假设厨房着火了,会马上去灭火)c 如果最高优先级的任务有多个,他们轮流运行 他们都是使用链表进行管理 打开CubeMX,最高优先级56 56个List, Rad

【FreeRTOS】创建任务_使用任务参数

参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 文章目录 前言编写任务函数创建任务任务保护措施写了个bug疑问遗留问题效果freertos.c 学习链接 前言 配套源码:06_create_task_use_params 我们创建3个任务,使用同一个函数,但是在LCD上打印不一样的信息。 3个任务使用同一个函数,但是他们运行的栈不一样

【FreeRTOS】任务状态改进播放控制

这里写目录标题 1 任务状态1.1 阻塞状态(Blocked)1.2 暂停状态(Suspended)1.3 就绪状态(Ready)1.4 完整的状态转换图 2 举个例子3 编写代码 参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 本节课实现音乐任务的创建,音乐播放的暂停与继续播放,删除任务。 代码为:08_task_priority

【FreeRTOS】删除任务 用遥控器控制音乐

参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 学习视频:【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 【精准空降到 01:22】 https://www.bilibili.com/video/BV1Jw411i7Fz/?p=19&share_source=copy_web&vd_

[FreeRTOS 功能应用] 互斥访问与回环队列 功能应用

文章目录 一、基础知识点二、代码讲解三、结果演示四、代码下载 一、基础知识点 [FreeRTOS 基础知识] 互斥访问与回环队列 概念 [FreeRTOS 内部实现] 互斥访问与回环队列 [FreeRTOS 内部实现] 创建任务 xTaskCreate函数解析 本实验是基于STM32F103开发移植FreeRTOS实时操作系统,实现多任务同时读写队列数据操作。 使用工具:

基于STM32 HAL库 的FreeRTOS移植步骤(结合Stm32CubMX)

结合Stm32 CubMX软件生成的带FreeRTOS的工程,移植到自己的项目中来。 一、硬件准备         STM32L15系列         一个ST-Link下载器及其连接线等。二、软件准备        FreeRTOS源码;        一个基于STM32 HAL库的基础例程(跑马灯例程)。        HAL库的移植可以自行百度。三、移植FreeRTOS 3.1 添加F

【转】FreeRTOS通用移植,以keil和IAR工程 M7核为例

目录 keil: IAR keil: 原文在https://bbs.eeworld.com.cn/thread-1281875-1-1.html 本篇讲述移植FreeRTOS,并创建运行一个任务,对象芯片为M7系列的兆易创新GD32H7xx系列。 一.准备工作 1.下载FreeRTOS源码官网 http://www.freertos.org/ 或者托管网站FreeRTOS R

STM32 FreeRTOS应用

在《按键控制蜂鸣器鸣笛》的程序基础上,将功能导入到FreeRTOS系统上跑,实现检测扩展板上的KEY1状态,控制蜂鸣器鸣笛。按一下按键,蜂鸣器滴滴滴响(每200毫秒响一次),再按一次按键,蜂鸣器关闭。 配置FreeRTOS信息 1.从BEEP的项目里导入ioc文件,并命名为FreeRTOS。 2.点击Middleware->FREERTOS,选择CMSIS_V1,点击Tasks and Qu

RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-06-19)

【说明】 1、RTX5全家桶的优势就是简单易用,初学的话,上手很快,稳定性也是杠杠的,且容易做稳定。 2、同时RTX5也是有汽车级,工业级,医疗和铁路安全认证,只是安全级别比ThreadX要稍微低些。 3、当前RTX5中间件源码已经开源了,大大方便大家问题的排查。同时提供了FreeRTOS内核版本,方便大家选择。视频介绍: https://www.bilibili.com/video/BV

FREERTOS中,队列按键捕获

队列消息获取的按键任务优先级 < 队列消息释放的按键任务优先级 会出现错误,必须先按KEY1,才能按KEY0 解决方法:修改任务的优先级,队列消息获取的按键任务优先级 >  队列消息释放的按键任务优先级

【FreeRTOS】估算栈的大小

参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 目录 估算栈的大小回顾简介计算说明估计函数用到的栈有多大合计 估算栈的大小 回顾 上一篇文章链接:http://t.csdnimg.cn/Cc8b4 传送门: 上一篇文章 上一篇文章创建的三个任务 /* 创建任务:声 */// 先创建一个动态分配内存的任务ret = xTa

FREERTOS QUENE

队列:先进先出 将3 2 1 0 按顺序写入队列 所以读取队列信息时,也是 3 2 1 0

FreeRTOS,使用SDIO外设会进入Hard FaultHandler

解决方法: 1.读写函数中,要使能所有中断。 2.读写缓冲数组为全局变量 3.任务堆栈开辟的大点

Error:..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,768

出现这个报错的时候说明:刚刚发生的中断中调用了系统的API函数,但是该中断的优先级超出了系统可管理的优先级范围; 降低该中断的优先级或扩大系统可管理优先级范围即可解决。

单片机第五季-第八课:STM32CubeMx和FreeRTOS

1,FreeRTOS背景介绍 RTOS简介: 实时操作系统,本用于追求实时性的嵌入式系统,典型:ucos/uclinux/vxworks; 特点:中断响应快、一般可嵌套中断、使用实地址、多任务; (实地址:) 近年来趋势:由RTOS向IoTOS转型,典型:FreeRTOS/LiteOS/rt-thread; (IoTOS:主要与物联网相关,涉及到各种通讯协议等) FreeRTOS简介

FreeRTOS简单内核实现6 优先级

文章目录 0、思考与回答0.1、思考一 1、就绪链表1.1、创建1.2、初始化1.3、添加任务1.3.1、prvAddNewTaskToReadyList( )1.3.2、prvAddTaskToReadyList( ) 1.4、寻找最高优先级任务 2、修改内核程序2.1、TCB2.2、xTaskCreateStatic( )2.3、prvInitialiseNewTask( )2.4、vT

FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《03》

系列文章 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《01》 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《02》 说明 在上篇 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《02》 开始移植适配 FreeRTOS,FreeRTOS 移植适配需要处理几个编译细节,因此分为几篇文章介绍 当前

FreeRTOS:4.内存管理

FreeRTOS内存管理 目录 FreeRTOS内存管理1. 为什么不直接使用C库函数的malloc和free函数2. FreeRTOS的五种内存管理方式3. heap4源码分析3.1 堆内存池3.2 内存块的链表数据结构3.3 堆的初始化3.4 堆的内存分配3.5 堆的内存释放 4. 总结 1. 为什么不直接使用C库函数的malloc和free函数 在C语言的库函数中,有m

微型操作系统内核源码详解系列四(4):操作系统调度算法(FreeRTOS内核篇下)

系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列三:微型操作系统内核源码详解系列三(0):空间存储及内存管理篇(前置篇)-CSDN博客                 微型操作系统内核源码详解系列三(1):任务及切换篇(任务函数定义)-

FreeRTOS中耐用的按键长短按识别

目录 长按连续触发根据长按时间执行功能 一个按键如果能有好几种功能,那么能大大节约 GPIO 引脚,在FreeRTOS中使用其计时器可以实现按键的长按和短按识别,并非裸机那般还需要加上定时器或在执行按键长按检测的代码时无法进行其他操作(实时性差)。 所以这里列举了按键长按可以实现的两种功能。 长按连续触发 计算长按时间,并根据长按时间做出不同反馈。也许用软件定时器会精简点,先

【FreeRTOS】创建第一个多任务程序

创建第1个多任务程序 韦东山 Freertos学习 第一个多任务程序创建 1. 目标 创建两个任务,任务A运行Led_Test,任务B运行LCD_Test。 硬件平台:DShanMCU-F103开发板 2. 接口函数 创建任务的API函数 不同操作系统有不同的创建API函数 FreeRTOS: xTaskCreate RT-Thread: rt_thread_create 统一:

FreeRTOS API速查

目录 0 常用类型1. 任务1.1 xTaskCreate 创建任务1.2 vTaskDelay 延时函数1.3 vTaskDelayUntil 精准延时函数1.4 vTaskDelete 任务删除函数1.5 vApplicationIdleHook 空闲任务钩子函数1.6 vTaskPrioritySet 任务优先级修改1.7 任务优先级获取 2. 队列2.1 xQueueCreate 创

手把手从0到1教你做STM32+FreeRTOS智能家居--前言

项目简介: 基于STM32F1系列的常见单片机,通过STM32Cubemx--Hal库进行代码编写,带freertos操作系统,拥有基于Android studio设计的app对单片机进行数据接收和控制。通过实时同步的实现以下功能: 产品功能 STM32-FreeRTOS物联网开发板--智能家居系统 (拥有Freertos实时操作系统,以下功能为同步运行): 1.语音控制灯光、

【FreeRTOS】事件组 event group(附源码)

引言:事件组是一种用于同步多个任务之间的状态和行为的机制。在操作系统中,事件组通常由操作系统提供,用于实现任务间的通信和同步。 事件组通常包含一组独立的事件或标志,每个事件或标志都可以表示一种特定的状态或条件。任务可以等待事件组中的一个或多个事件被设置,也可以设置、清除或检查事件组中的事件状态。 1.事件组的概念 首先我们先用生活中的实例来举例一下什么是事件组,春游三个同学,三个同学一起出

freertos源码分析DAY2 (消息队列 )

目录 1. 队列原理 1.1 顺序队列操作 1.2 循环队列操作 2.消息队列原理 2.1消息队列的构成 2.2 消息队列出入队原则 2.3 消息队列发送/接收消息原理 2.4 队列锁机制 3. 消息队列创建及删除 3.1 创建消息队列函数 3.1.1 xQueueGenericCreate通用任务创建函数  3.1.1.1  prvInitialiseNewQueue初始

freertos内核拓展DAY2(消息队列)

这节内容是信号量的基础,因为创建以及发送/等待信号量所调用的底层函数,就是创建/发送/接受消息队列时所用到的通用创建函数,这里先补充一下数据结构中关于队列的知识。 目录 1. 队列原理 1.1 顺序队列操作 1.2 循环队列操作 2.消息队列原理 2.1消息队列的构成 2.2 消息队列出入队原则 2.3 消息队列发送/接收消息原理 2.4 队列锁机制 3. 消息