ELF 文件格式 1、ELF header 2、程序头表和程序头表条目 3、节头表和节头表条目 4、系统固定的 section 一、概述 ELF(Executable and Linkable Format)是一种常用的可执行文件和可链接库格式。它是一种通用的二进制文件格式,用于在 Unix 和类 Unix 系统上进行可执行文件和库的存储和传输。 二、种类 ELF文件主要有四种类型 可执行文件(Exe 2024-09-05 Linux #Linux #ELF
单片机内存区域划分 1、栈区 2、堆区 3、全局区(静态区) 4、常量区 5、代码区 6、总结 1、存储器 1.1 RAM 1.2 ROM 1.3 Flash Memory 1.4 不同数据的存放位置 2、程序占用内存大小 一、C 语言内存分区 C 语言在内存中一共分为如下几个区域,分别是: 下面分别介绍各个区域。 1、栈区 栈区介绍: 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理 2024-09-01 嵌入式 > STM32 #嵌入式 #STM32
FreeRTOS 列表 List 源码解析 1、链表节点数据结构 xList_ITEM 2、链表精简节点结构 xMINI_LIST_ITEM 3、链表根节点结构 xLIST 1、初始化 1.1 链表节点初始化 1.2 链表根节点初始化 2、插入 2.1 将节点插入到链表的尾部 2.2 将节点按照升序排列插入到链表 3、删除 4、宏函数 链表是 FreeRTOS 的核心数据结构,有关任务调度、延时、阻塞、事件等操作都是通过 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 快速入门(九)之软件定时器 1、守护任务 2、守护任务的调度 3、回调函数 4、软件定时器定时器的控制块 1、创建 2、删除 3、启动/停止 4、复位 5、修改周期 6、定时器ID 一、软件定时器的特性 使用定时器跟使用手机闹钟是类似的: 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期(period)。 指定类型,定时器有两种类型: 一次性(One-shot timers): 这类定时器启动后 2024-08-26 嵌入式 > FreeRTOS #嵌入式 #FreeRTOS
FreeRTOS 快速入门(八)之任务通知 [toc] 一、任务通知 1、基本概念 FreeRTOS 从 V8.2.0 版本开始提供任务通知这个功能,每个任务都有 一个 32 位 的通知值,在大多数情况下,任务通知可以 替代二值信号量、计数信号量、事件组,也可以替代长度为 1 的队列(可以保存一个 32 位整数或指针值)。 相对于以前使用 FreeRTOS 内核通信的资源,必须创建队列、二进制信号量、计数信号量或事件组的情况,使用任务 2024-08-25 嵌入式 > FreeRTOS #嵌入式 #FreeRTOS
FreeRTOS 快速入门(七)之事件组 1、事件组和队列、信号量的对比 1、创建 2、删除 3、设置事件 4、等待事件 5、同步点 1、例一:等待多个任务 2、例二:同步任务 一、事件组的概念 事件组可以简单地认为就是一个整数: 每一位表示一个事件 每一位事件的含义由程序员决定,比如:Bit0 表示用来串口是否就绪,Bit1 表示按键是否被按下。这些位,值为 1 表示事件发生了,值为 0 表示事件没发生 一个或多个任务、IS 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 l 2024-08-23 嵌入式 > ESP32 #嵌入式 #ESP32
FreeRTOS 快速入门(六)之互斥量 [toc] 一、互斥量 1、基本概念 互斥量又称互斥信号量(本质是信号量),是一种特殊的二值信号量,它和信号量不同的是,它支持互斥量所有权、递归访问以及防止优先级翻转的特性,用于实现对临界资源的独占式处理。 任意时刻互斥量的状态只有两种,开锁或闭锁。当互斥量被任务持有时,该互斥量处于闭锁状态,这个任务获得互斥量的所有权。当该任务释放这个互斥量时,该互斥量处于开锁状态,任务失去该互斥量的所有权 2024-08-23 嵌入式 > FreeRTOS #嵌入式 #FreeRTOS