自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 问答 (4)
  • 收藏
  • 关注

原创 内存池学习:使用链表实现简单高效的内存池

内存池是一种预先分配内存的技术,它将一大块连续内存划分为多个固定大小的小块,通过链表等数据结构进行管理。mallocfree是链表的节点,每个节点表示一个空闲的内存块。成员next是指向链表中下一个空闲块的指针。首先block_size是每个内存块的大小(字节)。block_count是内存块的数量,返回值是一个指向MenoryPool的指针使用malloc分配一个MemoryPool结构体,用于管理内存池的元数据(例如块大小、总块数和链表头指针)。为内存池分配连续的内存块,总大小为。

2024-11-22 00:57:19 870

原创 在单片机中申请动态内存造成内存的碎片化

通过为音频数据分配一块足够大的固定内存池,我可以直接在录音时使用这块预留内存,完全避免了多次动态申请和释放内存带来的碎片化问题。总结来看,在存储需要大块连续空间的动态数据时,内存池策略比频繁的动态分配更为高效,尤其是在ESP32这样内存资源有限且不适合复杂内存管理方案的平台上,为音频数据存储提供了更加稳定的解决方案。然而在实际运行中,我发现随着多次申请和释放操作的累积,系统内的内存出现了严重的碎片化,导致无法为录音数据分配足够大、连续的内存块。释放内存,内存碎片依然不断堆积,最终导致了程序崩溃。

2024-11-17 23:31:40 273

原创 基于ESP32开发的掌上ai对话助手

本次项目的成果实现了在小型嵌入式平台上与ai大模型进行对话,同时制作了可视化页面,能够在三个不同的页面分别显示时间日期,进行大模型的对话,英语单词的背诵。在本次项目中,由于用到了sd卡再加上本人在备战6级,故而将六级词汇放入了sd卡中,当我点击更新时将会进行单词一起其中文的更新。再发送给大模型后,一方面把获取到的回答显示在屏幕上,另一方面会将其发送给百度智能云,获取音频流数据。这段代码将会把你的音频发送至百度云进行识别然后将识别到的转为文本发送回来,最后进行拼接。开发环境ESP-IDF5.2.1。

2024-11-16 23:34:25 1991

原创 YOLO数据集训练

train 是训练集 val是验证集 test 是测试集 names是你训练的所有物体的类别名称,按照序号排列。接下来再此文件夹内创建两个文件夹分别为images和labels。把标注好的数据选择保存到刚刚创建的labels文件夹里面。首先打开文件目录下的A_my_data.yaml文件。首先创建一个文件作为存放训练数据的文件。把所需要训练的图片保存进这三个文件夹中。在这两个文件夹内分别创建三个文件夹。接着打开刚刚的文件夹把图片进行标注。接着将你的数据集路径添加进去。

2024-11-15 22:54:30 314 1

空空如也

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

TA关注的人

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