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

FreeRTOS 队列 Queue 源码解析

[toc] 在 FreeRTOS 快速入门(四)之队列 一文中,我简单地叙述了 FreeRTOS 中队列的工作机制和基本使用。这一节我将依据 FreeRTOS V10.4.3 的源码深入地去探究队列是如何实现的。学好队列对我们后续学习信号量等知识的时候有很大的帮助。 一、队列1、队列结构体队列结构体定义在目录 queue.c 下: 12345678910111213141516171819202
2024-09-06
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

ELF 文件格式

@toc 一、概述ELF(Executable and Linkable Format)是一种常用的可执行文件和可链接库格式。它是一种通用的二进制文件格式,用于在 Unix 和类 Unix 系统上进行可执行文件和库的存储和传输。 二、种类ELF文件主要有四种类型 可执行文件(Executable File):包含可执行的机器代码,可以直接在操作系统中运行。 可重定位文件(Relocatable
2024-09-05
Linux
#Linux #ELF

单片机内存区域划分

@toc 一、C 语言内存分区C 语言在内存中一共分为如下几个区域,分别是: 下面分别介绍各个区域。 1、栈区栈区介绍: 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。 栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。 栈区按内存地址由高到低方向生长,其最大大小由==编译&
2024-09-01
嵌入式 > STM32
#嵌入式 #STM32

FreeRTOS 列表 List 源码解析

@toc 链表是 FreeRTOS 的核心数据结构,有关任务调度、延时、阻塞、事件等操作都是通过对链表进行操作进而实现的。本节将详细分析源码文件 list.c,list.h 的内容,为后续的任务队列等的实现奠定基础。 一、链表及链表项的定义FreeRTOS 使用的链表结构是环形的双向链表,而关于链表节点的数据结构都在 list.h 中定义。 1、链表节点数据结构 xList_ITEM首先来看链表
2024-08-29
嵌入式 > FreeRTOS
#嵌入式 #FreeRTOS

蓝牙BLE协议讲解

[toc] 一、概述蓝牙技术起源于爱立信在 1994 年提出的方案,旨在解决移动电话和其他配件之间进行低功耗、低成本的无线通信连接的方法。 1、发展历史 第一代蓝牙主要是指 90 年代的 V1.0~V1.2 版本,是关于短距离通信的早期探索,此时还存在许多问题,应用不是特别广泛 第二代蓝牙主要是 00 年中 V2.0~V2.1 版本,新增了 EDR(Enhanced Data Rate)技术提高
2024-08-27
通信协议 > BLE
#通信协议 #BLE

Linux 下 gdb 的使用

[toc] 一、概述GDB(GNU调试器)是一个功能强大的开源调试工具,可用于调试多种编程语言,包括 C、C ++、Fortran 等。它可以在运行过程中检查程序状态,设置断点以停止程序执行并观察变量值、内存状态等,并提供一系列命令和功能来辅助调试过程。 GDB 的主要功能包括以下几个方面: 设置断点:GDB 允许你在程序的某一行代码上设置断点,当程序执行到这一行时会暂停并等待调试命令。 单步
2024-08-26
Linux > 性能优化/调试
#Linux #Linux 命令 #性能优化/调试

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
1…45678…10

搜索

Hexo Fluid