STM32内存管理

betball贝博app stm32 452 次浏览 没有评论

若没有内存管理,则需要预先定义很大的空间(数组),为了避免该情况,需要动态分配空间。

分块式内存管理

组成:内存池,内存管理表。

内存管理表:数值为0则为被占用,否则即代表连续占用的内存块数。

内存分配方向:从栈顶->底,即首先从最末端寻找空内存,当内存管理刚初始化时,内存管理表全部清零,表示没有被任何内存块占用。

  • MEM_BLOCK_SIZE 内存块大小:内存分配时的最小单元
  • MEM_MAX_SIZE 内存池大小,管理的内存区域大小
  • MEM_ALLOC_TABLE_SIZE 内存表大小
  • MEM_ALLOC_TABLE_SIZE = MEM_MAX_SIZE/MEM_BLOCK_SIZE
  • 管理MEM_MAX_SIZE大小的内存,需要内存空间为MEM_MAX_SIZE+MEM_ALLOC_TABLE_SIZE*2
  • 发表评论

    邮箱地址不会被公开。

    Go