Yuxxxxxxxxxx's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

FreeRTOS 快速入门(九)之软件定时器

@toc 一、软件定时器的特性使用定时器跟使用手机闹钟是类似的: 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期(period)。 指定类型,定时器有两种类型: 一次性(One-shot timers): 这类定时器启动后,它的回调函数只会被调用一次; 可以手工再次启动它,但是不会自动启动它。 自动加载定时器(Auto-reload timers): 这类定时器启动后,
2024-08-26
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

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

[toc] 一、任务通知1、基本概念FreeRTOS 从 V8.2.0 版本开始提供任务通知这个功能,每个任务都有 一个 32 位 的通知值,在大多数情况下,任务通知可以 替代二值信号量、计数信号量、事件组,也可以替代长度为 1 的队列(可以保存一个 32 位整数或指针值)。 相对于以前使用 FreeRTOS 内核通信的资源,必须创建队列、二进制信号量、计数信号量或事件组的情况,使用任务通知显然
2024-08-25
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(七)之事件组

@toc 一、事件组的概念事件组可以简单地认为就是一个整数: 每一位表示一个事件 每一位事件的含义由程序员决定,比如:Bit0 表示用来串口是否就绪,Bit1 表示按键是否被按下。这些位,值为 1 表示事件发生了,值为 0 表示事件没发生 一个或多个任务、ISR 都可以去写这些位;一个或多个任务、ISR 都可以去读这些位 可以等待某一位、某些位中的任意一个,也可以等待多位 事件组用一个整数
2024-08-24
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

ESP32-IDF 在 Ubuntu 下的配置

[toc] 参考资料:官方文档:Linux 和 macOS 平台工具链的标准设置。 一、安装准备参照官方文档,首先下载编译 ESP-IDF 所需要的软件包: 1sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev lib
2024-08-23
嵌入式 > ESP32
#嵌入式 #ESP32

FreeRTOS 快速入门(六)之互斥量

[toc] 一、互斥量1、基本概念互斥量又称互斥信号量(本质是信号量),是==一种特殊的二值信号量==,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性,用于实现对临界资源的独占式处理。 任意时刻互斥量的状态只有两种,开锁或闭锁。当互斥量被任务持有时,该互斥量处于闭锁状态,这个任务获得互斥量的所有权。当该任务释放这个互斥量时,该互斥
2024-08-23
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(五)之信号量

@toc 一、信号量的特性信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,其实信号量主要的功能就是实现任务之间的同步与互斥,实现的方式主要就是依靠队列(信号量是特殊的队列)的任务阻塞机制。 1、信号量跟队列的对比差异列表如下: 队列 信号量 可以容纳多个数据,创建队列时有两部分内存: 队列结构体、存储数据的空间 只有计数值,无法容纳其
2024-08-22
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(四)之队列

@toc 一、队列的特性1、数据存储一个队列能保存有限数量的固定大小的数据单元。一个队列能保存单元的最大数量叫做 “长度”。每个队列数据单元的长度与大小是在创建队列时设置的。 队列通常是一个先入先出(FIFO)的缓冲区,即数据在队列末尾(tail)被写入,在队列前部(head)移出。下图展示了数据被写入和移出作为 FIFO 使用的队列。也可以写入队列的前端,并覆盖已位于队列前端的数据。 2、传
2024-08-21
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(三)之任务管理

@toc 一、任务创建与删除1、什么是任务在 FreeRTOS 中,任务就是一个函数,原型如下: 1void ATaskFunction(void *pvParameters); 要注意的是,函数内部,尽量使用局部变量。因为每个任务都有自己的栈,每个任务运行这个函数时,任务 A 的局部变量放在任务 A 的栈里、任务 B 的局部变量放在任务 B 的栈里。不同任务的局部变量,有自己的副本。函数使用
2024-08-20
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(二)之内存管理

[toc] 一、概述 在计算系统中,变量、中间数据一般存放在系统存储空间中,只有在实际使用时才将 它们从存储空间调入到中央处理器内部进行运算。通常存储空间可以分为两种:内部存储 空间和外部存储空间。内部存储空间访问速度比较快,能够按照变量地址随机地访问,也 就是我们通常所说的 RAM(随机存储器),或电脑的内存;而外部存储空间内所保存的内 容相对来说比较固定,即使掉电后数据也不会丢失,可以把它理
2024-08-19
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

FreeRTOS 快速入门(一)之 FreeRTOS 的命名规则

[toc] FreeRTOS 的命名规约非常独特,假若缺乏事先的了解,研读其源代码将使人感到困惑不解。然而,一旦熟悉了其命名规约,阅读就变得十分轻松了。 一、数据类型在 FreeRTOS 中,使用的数据类型虽然都是标准 C 里面的数据类型,但是针对不同的处理器,对标准 C 的数据类型又进行了重定义,给它们取了一个新的名字,比如 char 重新定义了一个名字 portCHAR,这里面的 port
2024-08-18
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS
1…8910111213

搜索

Hexo Fluid