关于freertos的heap1
来源:互联网 发布:ios 网络协议 编辑:程序博客网 时间:2024/06/07 19:35
为什么 程序中要用heap?
主要是为了想分配多少内存就分配多少,预先的需求有时候是不知道的,那么如果不用heap只能按照最大的内存预先定义出来,是个巨大的浪费,有时候内存就捉襟见肘了。所以就用heap了。
那么为什么要选heap1?不选heap2和heap3呢?
因为heap1最简单,容易看懂。不容易出问题。
---------------------------
(1)heap1中STM32对应的字节对齐(portBYTE_ALIGNMENT)选择几呢?我认为是选择4个字节对齐。因为通过STM32的编译器结果发现对于数组的对齐都是放在4的整数倍上的,如果定义的数组字节长度不是4的整数倍,那么编译器会自动填充,看生成的内存map就看出来了,填充显示的是PAD。
(2)关于#define configADJUSTED_HEAP_SIZE( configTOTAL_HEAP_SIZE - portBYTE_ALIGNMENT )为啥这样宏定义?或者换个问法就是为什么首次要从ucHeap[ portBYTE_ALIGNMENT ]开始呢?
这个问题博客http://blog.csdn.net/u014381531/article/details/38623641讲了这个问题。
这里再弄个例子讲一讲。比如把portBYTE_ALIGNMENT_MASK设置为8,用ucHeap[ 0 ],
看到了吧,pucAlignedHeap的值竟然不在数组ucHeap的地址范围内了。
阅读全文
0 0
- 关于freertos的heap1
- FreeRtos heap1源码分析
- FreeRTOS源码分析之heap1.c
- 关于freertos的看法
- 关于FreeRTOS源码分析的论坛
- FREERTOS----了解FreeRTOS的发行
- freertos第三课,关于串口用于可视化调试的问题
- FreeRTOS的特性
- FreeRTOS的那些事儿
- FreeRTOS的任务管理
- FreeRTOS的列表
- FreeRTOS的任务状态
- FreeRTOS
- FreeRTOS
- 关于freertos移植到stm32出错,程序直接跳到HardFault_Handler的问题。
- 基于STM32F103关于FreeRTOS 学习笔记
- 学习FreeRTOS前的准备工作
- STM32F4使用FreeRTOS的中断
- PAT a1089题解
- PAT a1090题解
- PAT a1091题解
- PAT a1092题解
- p5.js入门教程(3) 平滑过渡(Easing)
- 关于freertos的heap1
- Java基础 按数值传递
- RecyclerView方法onCreateViewHolder()和onBindViewHolder()没有调用
- 失去的时候才发现其珍贵,人没有目标是最可怕的
- Mac下安装和使用brew
- win10系统修改hosts文件无法保存
- linux学习之旅(七)&& 进程间通信之信号
- BZOJ 4552 [Tjoi2016&Heoi2016]排序
- JavaScript正则表达式