计算FreeRTOS剩余堆空间 |
您所在的位置:网站首页 › macbook怎么看还剩多少内存 › 计算FreeRTOS剩余堆空间 |
FreeRTOS占用内存
Freeconfig.h 中 宏定义 宏 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30 * 1024 ) )该宏所定义的内存空间属于ZI-data范围(ZI-data 是指未初始化的全局变量及初始化值为0的全局变量) FreeRTOS 自带的 申请内存API pvPortMalloc 是从configTOTAL_HEAP_SIZE所定义的内存中去申请; 文件中的malloc 函数是直接从SRAM堆中去申请内存,和全局变量等同 FreeRTOS 创建任务、消息队列及FreeRTOS的API函数都是从configTOTAL_HEAP_SIZE中申请内存 全局变量初始化为非0值,不引用占用RW-Data段初始化为0 或 不初始化,引用占用ZI-Data段不初始化,不引用不占用任何空间 FreeRTOS 堆空间任务、队列、用户使用 pvPortMalloc() 分配的空间都从heap堆上面划分 API函数计算内存空间 xPortGetFreeHeapSize()获取调用堆中空闲内存的大小,以Byte为单位 (heap_3 方案不能使用这个API) 求FreeRTOS 堆空间的最小空闲存储空间: xPortGetMinimumEverFreeHeapSize()返回FreeRTOS应用程序开始运行之后曾经存在的最小的未被分配的存储空间的字节数,该API仅在使用heap_4和heap_5时有效 求任务栈空间大小的API: 前提:在FreertosConfig.h中把 INCLUDE_uxTaskGetStackHighWaterMark 配置为1 uxTaskGetStackHighWaterMark()该函数返回 所在任务自启动以来 的最小任务栈空间大小,单位为 字(求字节数 再 ×4 ) 在一个任务中调用该API: printf(" the min free stack size is %d \r\n",(int32_t)uxTaskGetStackHighWaterMark(NULL));函数功能:打印出来该任务自启动起来最小剩余栈空间大小 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |