Freertos Memory Layout介绍
1. 概述¶
本文档介绍了SStar平台上freertos的memory layout方式。
2. MMAP¶
2.1. MMAP介绍¶
MMAP是memory map的简写,它是整个SOC系统内存Layout,MMAP内配置的内存分成两个部分。
-
RTK HEAP,由freertos管理,使用CamOsMemAlloc申请,size有限,一般只用于小块buff使用。
-
MMA HEAP,由MI管理,各模块及应用使用的大块内存使用。
rtk\proj\sc\driver\sysdriver\mmupte\pioneer3\inc\cpu_mem_map_pioneer3_16.h
MMA 的部分在这里配置即可, RTOS 的部分还需同步修改下一章说明的地方。
2.2. RTK size配置¶
-
rtk\proj\sc\customer\product\cust\scatter\scatter_pioneer3_16_isw.lds
ORIGIN 设定为上一章中设定的RTK_ADDR
LENGTH设定为上一章中设定的RTK_SIZE
MIRRORED_VECTOR_TABLE 设定为RTK_ADDR+MIRRORED_VECTOR_TABLE_OFFSET
-
project/configs/defconfigs/usbcam-rtos_p3_nor.glibc-9.1.0-021a.64.qfn128_defconfig
CONFIG_RTOS_LOAD_ADDR="0x20D08000"设定同步为MIRRORED_VECTOR_TABLE
2.3. RTK 实际内存查看¶
2.3.1. 查看mma内存¶
命令: cat_proc mi_sys
如上图,第一个框中的length表示 mma总的内存大小,第二个小框中的avail表示当前可用mma内存的大小 each chunk info则表示模块占用内存情况
2.3.2. 查看rtk内存¶
命令: memstat
打印比较多,主要关注如下内容:
Total heap size:就是rtos可用内存大小,单位 Byte
Total free heap size: 表示剩余可用内存