FreeRTOS源码分析之heap1.c
来源:互联网 发布:理财 大数据 组合 编辑:程序博客网 时间:2024/06/06 04:15
首先要说清楚一点,不要看到heap就以为是从堆区分配内存。在heap1.c文件里面定义了一个configTOTAL_HEAP_SIZE大小的数组叫做ucHeap,所谓的分配空间仅仅是从ucHeap数组里面分配一块空间出来。这也表明,这块空间不在堆区,它在.bss段。
pvPortMalloc的源码如下图所示:
pvPortMalloc函数首先将xWantedSize进行字节对齐。比方说8字节对齐(即portBYTE_ALIGNMENT = 8)的情况下,你想要分配一块13字节的内存,那么下面这段代码会将xWantedSize=13转换为xWantedSize=16。
ucHeap只是个全局变量,根本不能确定它所处地址,所以也不能保证它8字节对齐。下面这段代码就是把ucHeap转化为8字节对齐,比如将本来0x60003对齐为0x60008。
最后就是从剩余的空间里面分配出一段xWantedSize大小的空间出来,并且更新已分配字节大小xNextFreeByte。
heap1只能分配空间,不能释放空间。
heap1在使用pvPortMalloc分配空间之前,要先进行初始化(即将已分配字节大小设为0)
xPortGetFreeHeapSize函数用来查看剩余空间大小
0 0
- FreeRTOS源码分析之heap1.c
- FreeRtos heap1源码分析
- FreeRTOS源码分析之heap2.c .
- FreeRTOS源码分析之heap3.c
- FreeRTOS源码分析之heap4.c
- 关于freertos的heap1
- FreeRTOS 源码分析
- FreeRtos heap2源码分析
- FreeRtos heap3源码分析
- FreeRtos heap4源码分析
- FreeRtos heap5源码分析
- FreeRTOS源码分析-异常处理
- FreeRTOS源码分析-代码结构
- FreeRTOS 内存管理源码分析
- FreeRTOS timer定时器源码分析
- 关于FreeRTOS源码分析的论坛
- FreeRTOS的Tickless低功耗源码分析
- Freertos消息队列接收源码xQueueGenericReceive分析
- 基于maven管理spring boot的批量上传
- JDBC连接池的创建
- tensorflow 莫烦视频学习笔记 变量 (二)
- 新人程序员如何脱颖而出
- this详解
- FreeRTOS源码分析之heap1.c
- JIRA增加自定义导航菜单项---普通用户查看所有项目
- 【IMWeb训练营作业】Vuejs 简单使用
- 俄罗斯黑客在暗网销售廉价的Ransomware服务
- FreeRTOS源码分析之heap2.c .
- Linux常用命令
- SparkSQL之查询,过滤
- FreeRTOS源码分析之heap3.c
- tp 实现无限回复评论功能