自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 自己复刻RTOS系统基于STM32-4.自定义的堆内存分配器

STM32 工程中,如果你使用的是 Keil、IAR 或 STM32CubeMX 生成的项目,堆空间通常是通过启动文件(startup_xx.s)中用汇编方式分配的,例如这段:;堆大小定义768 字节xStart 和 xEnd 虽然不是实际可用内存块,但在空闲链表的维护中扮演着关键角色:xStart:提供统一的遍历入口,简化逻辑。xEnd:作为链表末尾标志,保证链表结构稳定,并支持空闲块的升序插入。通过设置这两个哨兵节点,我们的堆管理逻辑更加清晰、健壮、易于维护。

2025-06-05 15:22:58 771

原创 自己复刻RTOS系统基于STM32-3.任务队列

函数名职责是否可能阻塞唤醒机制初始化队列结构否无需唤醒向队列写入数据项✅ 队列满时唤醒接收者从队列读取数据项✅ 队列空时唤醒发送者。

2025-06-04 17:38:25 769

原创 自己复刻RTOS系统基于STM32-2.任务调度

基于优先级的就绪链表;延时链表与任务延时处理;时间片轮转(同优先级任务公平执行);每次中断中触发的调度器 schedule()。你会发现,任务管理的本质其实就是链表管理。谁在链表里、谁不在链表里,决定了谁能运行。加上一个简单的时间片机制(让出 CPU),我们就构建出了一个最基本的 RTOS 内核调度系统。📌 提示:我所有的代码都已经上传到GitHub,建议结合源码一起阅读本系列文章,效果更佳。代码中的函数结构和注释可以帮助你更好地理解各部分的逻辑关系和执行流程。

2025-06-03 01:45:26 687

原创 自己复刻RTOS系统基于STM32-1.任务切换

在一个基本的 RTOS 内核中,为了在多个任务间实现“并发运行”的效果,我们需要周期性地从一个任务切换到另一个任务。这个过程被称为任务切换(Context Switch)。在 STM32 Cortex-M 系列中,这个过程依赖于一个专门的内部中断机制:PendSV 异常。在一个多任务操作系统中,TCB(Task Control Block) 是每个任务的“身份证”和“记事本”,记录了任务运行所需的全部关键信息。RTOS 通过管理多个 TCB 来实现对任务的调度和切换。

2025-06-02 17:49:41 950

原创 ESP32客户端工作流程

在本教程中,我们使用ESP32示例代码gatt_client代码。代码实现了蓝牙低功耗(BLE)通用属性(GATT)客户端,该客户端扫描附近的外围服务器并连接到预定义的服务。然后,客户端搜索可用特征并订阅已知特征,以便接收通知或指示。该示例可以注册应用程序概要文件并初始化一系列事件,这些事件可用于配置通用访问概要文件(GAP)参数并处理诸如扫描、连接到外设以及读写特征等事件。

2025-02-18 15:05:41 1099

原创 BLE 服务注册与特征管理

本章只讨论有关低功耗蓝牙服务的内容,主要是ESP32的V5.32的gatt_server代码为例子。主要探讨蓝牙Application的功能,别的上下有功能不过多介绍。

2025-02-11 17:40:23 1019 1

原创 一张纸了解freertos的使用(3)

话不多说,直接上代码。

2024-05-08 19:39:30 308

原创 一张纸了解freertos的使用(2)

信号量,本质是用队列实现的。但是,我们刚学的队列是用来传递数据,但是信号量顾名思义是传递信号的。使用信号量时,先创建、然后去添加资源、获得资源。使用句柄来表示一个信号量。信号量的计数值都有限制:限定了最大值。如果最大值被限定为1,那么它就是二进制 信号量;如果最大值不是1,它就是计数型信号量。

2024-05-07 16:52:58 1669 3

原创 一张纸了解freertos的使用(1)

本文致力于精简的语言介绍,freertos的使用。对于其背后的原理,不做太多的解释。只针对有一定基础的只针对有一定基础的只针对有一定基础的。

2024-05-06 17:43:12 1429 1

原创 STM32进入低功耗(一)HAL库

其中,重要的内容简单介绍一下stm32有三种低功耗其实他们是递进的关系,基础操作位__wfi(),这一个汇编命令,就可以进入睡眠模式。停机是在睡眠的模式上,关闭一些功能(这个功能如1.8V供电区域的的所有时钟都被停止,PLL、HSI和HSE RC振荡器的功能被禁止,也可以是自己添加的功能)待机就是“软启动”。

2024-05-04 14:28:38 2526

原创 stm32电源控制(yi)-硬件介绍

先看STM32F10X-中文手册可能搭建,使用的是最小系统开发板,不熟悉VSSA,VDD这些,我这里展示一下stm32f103c8t6的芯片图使大家熟悉一下。所以,不要脑子里面只有vcc,其实有5个接口供电。

2024-04-29 17:13:59 1012

原创 为什么链表要用双重指针??

在C语言中,二重指针是指指向指针的指针。它的语法形式是type **ptr,其中type是指针指向的数据类型。二重指针通常用于函数参数传递,特别是在需要修改指针指向的内存地址时非常有用。

2024-04-23 16:37:53 824 1

原创 车牌识别基于paddleocr和HSV

车牌识别基于paddleocr和HSV。对于新手来讲,快速实现车牌识别。

2023-02-25 14:44:51 452 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除