内存配置
Luban-Lite SDK 支持多个芯片平台,而各个平台的内存种类和内存大小也不同,正确的进行内存配置会使系统运行更高效。
内存分类
存储类型
在存储类型上分为:
- DRAM:动态RAM,又称 DDR,典型代表平台:D21x
- SRAM:静态RAM,又称高速缓存,典型代表平台:D13x
- PSRAM:伪静态RAM,典型代表平台:D13x,D12x
应用场景
在应用场景上分为:
- Software region:支持堆和栈的动态分配,由操作系统管理
- CAM region:连续内存区域,预留给 framebuffer,视频,图片等解码使用
平台统计
平台型号 | DRAM | SRAM | PSRAM | CMA | 说明 |
---|---|---|---|---|---|
D21xxBx | 64M | X | X | 22M | CMA可供系统使用,配合mpp heap一块调大 |
D21xxCx | 128M | X | X | 32M | |
D13xxAx | X | 512K | 4M | 4M | Software Region 可以共享CMA |
D13xxBx | X | 1M | 8M | 8M | |
D13xxCx | X | 1M | 16M | 8M | |
D12xxAx | X | 1M | 4M | 2M | |
D12xxBx | X | X | 8M | 4M | |
D12xxCx | X | X | 16M | 8M | |
G73x | X | 1M | X | 756K |
配置内存
内存初始化由 SDK 自动完成,但在应用层为了更合理的使用,需要确保该型号的内存的大小配置的正确性, 通过 me 命令在 menuconfig 界面导航到 Board options > Mem Options 配置。
DRAM
bash
Board options > Mem Options > DRAM parameter
(0x8000000) DRAM Total Size //DRAM 128M
(0x2000000) CMA mem size //CMA 32M
1
2
3
4
2
3
4
SRAM
bash
Board options > Mem Options > SRAM parameter
(0x100000) SRAM Total Size //SRAM 1M
[ ] Enable TCM (Tightly Coupled Memory) //不设置
SRAM_S1 Size (0K) //G73x UI 展示时设置
(0x0) Software size in SRAM_S1 //G73x UI 展示时设置
(0x40000) Bootloader reserve size //Bootloader 位置,不修改
1
2
3
4
5
6
7
2
3
4
5
6
7
PSRAM
bash
(0x800000) PSRAM size //PSRAM 8M
(0x0) Software size in PSRAM //Software 区域大小为 0,CMA 区域大小即为 8M - 0 = 8M
1
2
2
配置栈
中断栈
bash
Board options > Mem Options > Interrupt stack size
1
主线程栈
bash
Rt-Thread options > RT-Thread Components > Set main thread stack size
1
MSH 栈
bash
Rt-Thread options > RT-Thread Components > MSH: command shell > The stack size for thread
1
成果
正确的内存配置可以使演示程序正常运行。