自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RT-Thread:rt_mp_create 函数

函数的主要功能是创建一个内存池对象,分配所需的内存空间,初始化内存池的各种属性和数据结构(包括空闲内存块链表和挂起线程列表),并返回指向该内存池对象的指针。如果在创建过程中任何一步失败,函数会进行相应的清理操作并返回。这是一个调试宏,用于确保该函数不会在中断上下文中执行。因为内存池的创建涉及到多个步骤的内存分配和数据结构初始化,在中断上下文中执行可能会导致不可预期的结果。如果以上步骤都成功执行,返回指向创建好的内存池对象的指针。函数导出,使其可以在其他模块中被调用。

2025-03-02 14:24:17 724

原创 rt-thread :rt_malloc函数

记录调试日志,调用内存分配钩子函数(如果有注册),最后返回分配的内存块指针(跳过。函数通过查找合适的空闲内存块,根据情况进行分割或直接使用,实现了从堆内存中分配指定大小内存块的功能,并通过信号量保证了内存分配操作的线程安全性。结构体大小和最小对齐大小),则将该内存块分割成两部分,一部分用于分配,另一部分作为新的空闲内存块。指向当前检查的内存块,如果该内存块未使用且剩余空间大于等于要分配的大小,则找到了合适的内存块。,表示要分配的内存块大小,返回值是一个指向分配内存块的指针,如果分配失败则返回。

2025-03-02 14:07:40 396

原创 RT-thread:rt_sem_take函数

函数接受两个参数,sem是指向要获取的信号量的指针,time是线程等待信号量的时间。使用RT_ASSERT宏检查传入的信号量指针是否为空。然后调用对象钩子函数,用于在获取信号量前执行一些自定义操作(如果有注册的话)。保存当前中断状态并关闭中断,防止在检查和修改信号量状态时被中断干扰。如果开启了 IPC 调试日志,输出当前线程名称、要获取的信号量名称以及信号量当前的值。如果信号量的值大于 0,说明信号量可用,将信号量的值减 1,然后恢复中断。信号量不可用处理,无等待时间情况:恢复中断并返回超时错误码。

2025-03-02 13:37:39 455

原创 RT-Thread_08_queue

【代码】RT-Thread_08_queue。

2025-02-25 10:57:18 152

原创 RT-thread 源码分析 RT-Thread_06_taskdelay

看了韦东山的视频,视频了韦老师带领我们理解了大部分原理。但是并没有一句一句看编程源码。这里我把源码整理了一下。main函数main→rt_thread_create→RT_object_allocate函数通用内存分配函数插入module链表的对象与动态加载模块关联,便于模块级别的资源管理;插入链表的对象是全局对象,由系统整体管理。main→rt_thread_create→RT_object_allocate→RT_KERNEL_MALLOC线程内存栈分配函数是调用了 rt_malloc函数。

2025-02-23 14:02:11 1183

原创 vivado dds compiler(6.0)学习笔记

发一下自己的学习笔记

2023-11-21 13:46:43 2705

空空如也

空空如也

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

TA关注的人

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