FreeRTOS

基于STM32的FreeRTOS智能手环(毕业设计)

———————智能手环——————— 外观 功能介绍 🎈 -1-普通模式(时间显示,设置,掉电保存) 🎈 -2-健康模式(心率血氧检测) 🎈 -3-运动模式(计步器) 🎈 -4-搭载FreeRTOS操作系统 ———————嵌入式设计可私信——————— ......
毕业设计 FreeRTOS 智能 STM 32

FreeRTOS--任务通知

示例源码基于FreeRTOS V9.0.0 任务通知 1. 概述 任务通知是也是RTOS中任务通信的一种方式,区别于队列,信号量,事件组等,它不使用额外的结构体作为通信内容; 基于任务通知,可以实现轻量级的队列(长度为1)、邮箱(覆盖的队列)、计数型和二值信号量、事件组; 2. 特性 2.1 劣势 ......
FreeRTOS 任务

BUG分享|报错:Cannot access Memory (@ 0xe00fffe4, Read, Acc Size: 4 Byte);移植FreeRTOS后无法烧录;DAPLink无法烧录;低功耗无法烧录;

引言 在移植FreeRTOS到STM32F411CEU6上时,出现了烧录一次后,无法再次烧录的情况。 现象 烧录时报错: Cannot access Memory (@ 0xe00fffe4, Read, Acc Size: 4 Byte); 弹窗:Connection refused due to ......
功耗 FreeRTOS DAPLink Cannot access

FreeRTOS--递归锁

示例源码基于FreeRTOS V9.0.0 递归锁 1. 概述 递归锁是特殊的互斥量,允许同一任务多次获取和释放锁,而不会造成死锁; 获取和释放的次数必须相同; 递归锁的实现依赖于内部的uxRecursiveCallCount变量,它标记递归的次数,每次上锁加1,每次解锁减1,减为0才真正释放锁; ......
FreeRTOS

FreeRTOS--互斥量

示例源码基于FreeRTOS V9.0.0 互斥量 1. 概述 互斥量用于临界资源的保护,通过互斥量,多个任务对相同资源进行的访问操作是互斥的; 互斥量的核心在于谁上锁,就由谁解锁,这只是约定,FreeRTOS并没有在代码上实现这一点; 互斥量是一种特殊的信号量,也是一种特殊的队列; 使用互斥量,需 ......
FreeRTOS

【实战技能】 单步运行源码分析,一期视频整明白FreeRTOS内核源码框架和运行机制,RTOS Trace链表功能展示

从源码的角度来看,OS内核源码就是通过各种链表组装起来的,FreeRTOS就是下面几个链表组成的。FreeRTOS的调度,任务切换就是倒腾这几个链表。而其它的几款OS是一个链表就一撸到底了,FreeRTOS是搞了好几个。所以视频里面就重点介绍下这个,其它的支持的也做个拓展说明。 搞清楚这几个链表也就 ......
源码 内核 实战 框架 FreeRTOS

FreeRTOS--信号量

示例源码基于FreeRTOS V9.0.0 信号量 1. 概述 消息队列用于传输多个数据,但是有时候只需要传递状态,这个状态值需要用一个数值表示,在这种情况下我们只需要维护一个数值,使用信号量效率更高、更节省内存。 信号量用来表示资源的个数,它是特殊的队列实现,队列数据项为空。 对于二值信号量,队列 ......
FreeRTOS 信号

FreeRTOS--队列集

示例源码基于FreeRTOS V9.0.0 队列集 1. 概述 队列集的本质也是队列,只不过里面存放的是“队列句柄”。 当任务需要及时读取多个队列时,可以使用队列集。它类似于posix的多路复用思想。可以将想要监听消息的队列放入队列集中,当其中有队列有数据达到时,队列集的接口会返回可读的队列句柄,用 ......
队列 FreeRTOS

FreeRTOS--邮箱

示例源码基于FreeRTOS V9.0.0 邮箱 1. 概述 一种特殊的队列,队列深度只有1,写数据的时候是覆盖写,读数据的时候,读完不会把数据从队列删除; 写数据的时候永远是成功的,读数据的时候仅第一次队列无数据时会阻塞或失败,当队列有数据后,读都会是成功的; 2. 接口API // 写队列 #d ......
FreeRTOS 邮箱

FreeRTOS--队列

示例源码基于FreeRTOS V9.0.0 队列 1. 概述 FreeRTOS的队列,支持任务与任务间的通信,以及任务与中断间的通信。它是FreeRTOS系统中主要的任务间通信方式。 队列内的消息,是通过拷贝方式传递,而非指针。 队列除了基本的先进先出特性,也支持往队列首部写入数据。 FreeRTO ......
队列 FreeRTOS

FreeRTOS--链表

示例源码基于FreeRTOS V9.0.0 链表 1 概述 链表一般可分为单向链表、双向链表、环形链表。FreeRTOS采用的是环形双向链表设计; 单向链表只有后继节点,双向链表有后继和前驱节点; 链表的目的是把元素串联,其设计方式一般有两种: 将元素放置在链表结构体中; 将链表结构体放置在元素中; ......
FreeRTOS

FreeRTOS--内存管理

示例源码基于FreeRTOS V9.0.0 内存管理 1 概述 FreeRTOS 有自己的一套内存管理机制,而非直接使用malloc和free等C库函数。 malloc和free由于实现复杂,代码量大,运行时间不确定,存在内存碎片,非线程安全等问题,不适用于资源紧缺的FreeRTOS系统; Free ......
FreeRTOS 内存

了解 ESP32 FreeRTOS:初学者指南

原文:https://www.cnblogs.com/intomcu/p/17297020.html 了解 ESP32 FreeRTOS:初学者指南 ESP32 FreeRTOS是什么? 如何使用FreeRTOS? 哪些常用的函数? xTaskCreate() vTaskDelete() vTask ......
初学者 FreeRTOS 指南 ESP 32

基于stm32H730的解决方案开发之freertos系统解析

一 概述 在嵌入式小系统领域,freertos是一个非常厉害的角色。它和小芯片结合,能迸发出非常大的威力。这里在H730上使用了这个freertos,是应该做一个总结和备忘。 二 实例解析 1 线程初始化: freertos最大的优势就是多任务,所以,多线程非常重要,怎么定义一个线程呢? 下面给出一 ......
freertos 解决方案 方案 系统 H730

FreeRTOS 原理 --- 最少剩余可用栈 与 栈溢出检查

函数 uxTaskGetStackHighWaterMark() 可用于获取任务的最少剩余可用栈 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_ ......
FreeRTOS 原理

FreeRTOS系统中CPU使用率统计方法分析

基本概念 操作系统中CPU使用率是在软件架构设计中必须要考虑的一个重要性能指标。它直接影响到程序的执行时间以及优先级更高的任务能否实时响应的问题。而CPU使用率也不能过低,避免资源浪费。 统计方法 FreeRTOS操作系统是使用任务的累计运行时间来统计每一个任务自系统开始运行到当前时刻的CPU占用时 ......
使用率 FreeRTOS 方法 系统 CPU

FreeRTOS(3):事件组、任务通知

1.事件组 学校组织秋游,组长在等待: ⚫ 张三:我到了 ⚫ 李四:我到了 ⚫ 王五:我到了 ⚫ 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好 就交谁的。 在这个日常生活场景中: ⚫ 出发:要等待这 3 个人都到齐,他们是"与"的关系 ......
FreeRTOS 任务 事件

手动移植FreeRTOS V9.00到 Stm32F103C8T6

记录移植过程,以便以后查看: 1.使用cubeMAX配置一个工程 a.选择单片机型号: b。设置SWD调试,选TIM4作为系统时钟,systick要用来跑freeRTOS c.NVIC默认使用Group4 配置GPIO,我这里配置了两个引脚,作为LED输出 d,RCC都选外部晶振 e。配置时钟树,H ......
手动 FreeRTOS 103C F103 103

freeRTOS 学习

一、任务状态 任务状态可以分成 Running 和Not Running: 但实际的Not Running状态还有许多的其他状态作为细分。 包括挂起,阻塞和就绪态 挂起状态表示该任务虽然已经创建但是在没有进入其他状态时,永远不会运行。 阻塞态表示该任务在等待一个事件,在事件到来之前都是阻塞态 就绪态 ......
freeRTOS

FreeRTOS(2):队列、信号量、互斥量

1、队列 1.1 数据传输方法 任务之间如何传输数据 数据个数 互斥措施 阻塞-唤醒 全局变量 1 无 无 环形缓冲区 多个 无 无 队列 多个 有 有 队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息。 为什么不使用全局变量? 如果使用全局变量,任务 ......
队列 FreeRTOS 信号

FreeRTOS任务调度

FreeRTOS任务调度器有哪些功能? FreeRTOS 任务调度器具有以下功能: 实现并发性和时间确定性:FreeRTOS 的任务调度器是实现并发性和时间确定性的核心组件,它使用抢占式调度算法,通过分配优先级来确保高优先级的任务能够在低优先级任务之前执行。 动态优先级调整:任务的优先级可以动态地进 ......
FreeRTOS 任务

FreeRTOS 解析

FreeRTOS 解析 xidianjunnan 分类专栏: 操作系统 文章标签: mcu 物联网 iot————————————————版权声明:本文为CSDN博主「xidianjunnan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https:/ ......
FreeRTOS

FreeRTOS上移植RT-thread的at组件

因为一开始用的是FreeRTOS,因此,项目中的RTOS也是FreeRTOS,但是在项目开发过程中,发现需要解析AT指令集, 因此来移植一波RT-thread的软件包。下次就用RT-thread了,纯纯浪费时间移植。 首先捋清大概思路。 1. 串口接收中断被外界消息输入触发,中断在回调函数中将消息内 ......
组件 RT-thread FreeRTOS thread RT

STM32F103C8T6移植FreeRTOS过程记录

一、创建基于官方库的裸机工程(这教程很多,每个人创建的工程风格也不一样,就不多赘述了) 二、下载FreeRTOS开源代码(FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Int ......
FreeRTOS 过程 103C F103 STM

FreeRTOS 原理 --- 临界区(critical section)

关调度器 void vTaskSuspendAll( void ) { /* A critical section is not required as the variable is of type BaseType_t. Please read Richard Barry's reply in ......
FreeRTOS critical 原理 section

FreeRTOS 原理 --- 互斥锁

互斥锁相比于二值信号量,有以下特点: 1、通过优先级继承,防止优先级反转 2、只有互斥锁持有的线程可以释放互斥锁 3、FreeRTOS 提供支持递归版本的互斥锁 创建互斥锁 互斥锁使用的描述符是队列的描述符,不单独定义互斥锁描述符。 初始化时,指定队列的长度 pxNewQueue->uxLength ......
FreeRTOS 原理

《Mastering the FreeRTOS Real Time Kernel》读书笔记(7)事件组

FreeRTOS事件组,总而言之就是很多个二进制信号量的集合,通过使用掩码的方式提取每一位,使多个任务共同合作实现比较复杂的功能。 ......
Mastering FreeRTOS 事件 笔记 Kernel

《Mastering the FreeRTOS Real Time Kernel》读书笔记(6)资源管理

7.资源管理(互斥量) 在多任务系统中,如果一个任务开始访问资源,但在从运行状态转换出来之前没有完成访问,则可能会出现错误。如果任务使资源处于不一致状态,则任何其他任务或中断对同一资源的访问都可能导致数据损坏或其他类似问题。 这里的资源管理,应该是指计算机的外设资源,比如LCD显示器,寄存器,内存中 ......

《Mastering the FreeRTOS Real Time Kernel》读书笔记(5)中断管理

6.中断管理 在读这一章之前一直有一些疑惑,FreeRTOS中的中断是软中断吗,还是将外部硬中断的触发后,导入FreeRTOS的内部进行调度处理。如果是第一种,软中断和第三章讲的任务有区别吗,还是只是优先级比所有任务高。如果是第二种的话,外部中断的服务函数是不是不能写内容了,FreeRTOS的运行和 ......
Mastering FreeRTOS 笔记 Kernel Real

《Mastering the FreeRTOS Real Time Kernel》读书笔记(4)软定时器

5.软件定时器管理 软件定时器由FreeRTOS内核实现,并受其控制。它们不需要硬件支持,也与硬件计时器或硬件计数器无关。 软件定时器功能是可选的。包括软件定时器功能:1。作为项目的一部分,构建FreeRTOS源文件FreeRTOS/source/timers.c。2.在FreeRTOSConfig ......
定时器 Mastering FreeRTOS 笔记 Kernel