zoukankan      html  css  js  c++  java
  • freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况

    1.FreeRtos占用内存

    #define configTOTAL_HEAP_SIZE        ( ( size_t ) ( 30 * 1024 ) )
    
    

    pvPortMalloc是从configTOTAL_HEAP_SIZE中申请内存,作为ZI-data被编译。
    malloc是直接从SRAM 堆 中申请内存,是和全局变量一个地位。

    2.芯片占用情况

    • RO-data是 Read Only 只读常量的大小,如const型;
    • RW-data是(Read Write) 初始化了的可读写变量的大小;
    • ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化;

    FLASH:Code + RO-Data + RW-Data
    SRAM: RW-Data + ZI-Data

    3.全局变量的占用

    1. 定义未初始化未使用 : 不占空间
    char a[1000];
    int main()
    {
      
    }
    
    1. 定义未初始化并使用: 占用ZI-Data
    char a[1000];
    int main()
    {
      memset(a, 0, sizeof(a));
    }
    
    1. 定义初始化: 不管用不用,都占用RW-Data
    char a[1000] = "hello";
    int main()
    {
      //memset(a, 0, sizeof(a));
    }
    
  • 相关阅读:
    线段树(updata+query)
    铁轨(栈)
    困难的串(搜索)
    素数环(简单搜索)
    编码
    opencv + numpy for python
    PIL参考手册
    八数码问题
    三维地图(BFS)
    梯田(dfs)
  • 原文地址:https://www.cnblogs.com/penuel/p/15329545.html
Copyright © 2011-2022 走看看