Freertos Memory Layout介绍
1. 概述¶
本文档介绍了SStar平台上freertos的memory layout方式。
2. MMAP¶
2.1. product config配置¶
MMAP是memory map的简写,它是整个SOC系统内存Layout,MMAP内配置的内存分成两个部分。
-
RTK HEAP,由freertos管理,使用CamOsMemAlloc申请,size有限,一般只用于小块buff使用。
RTOS部分在mak此处配置。
-
MMA HEAP,由MI管理,各模块及应用使用的大块内存使用。
MMA部分在mak此处配置。
2.2. project defconfig配置¶
路径:project/configs/defconfigs/usbcam-rtos_*_defconfig
此处project defconfig的内存配置需要同product config所配置的数值对应上。如project defconfig的CONFIG_RTOS_LOAD_ADDR
要等于product config中CONFIG_RTOS_MEM_START_VA
+CONFIG_VECTOR_TABLE_OFFSET
;project defconfig的CONFIG_MMA_SIZE
要同product config的CONFIG_MMA_HEAP_SIZE
的值一致。
2.3. RTK 实际内存查看¶
2.3.1. 查看mma内存¶
命令: cat_proc mi_sys
如上图,第一个框中的length表示mma总的内存大小,第二个小框中的chunk_mgr_avail表示当前可用mma内存的大小, each chunk info则表示模块占用内存情况。
经常会碰到需要减小MMA内存大小的情况,将多出来的内存提供给RTOS使用,可以通过HighPeak,在压测时确定一个大致的峰值进行调整。
2.3.2. 查看rtk内存¶
命令: memstat
打印比较多,主要关注如下内容:
Total heap size:rtos可用内存大小,单位 Byte
Total free heap size:表示剩余可用内存