内存分配调整

AIBOX-1684X 的内存有一部分被分配于 NPU、VPP 和 VPU 设备,因此使用 free -h 等指令获取的内存数据与 AIBOX-1684X 的实际内存不一致。

如需查看详细的内存分配设置,或者默认内存分配与实际需求冲突,需调整内存分配的,可参照以下文档进行相应操作。

安装内存分配工具

下载中心中获取内存分配工具压缩包,并将其传输到 AIBOX-1684X 上,执行以下命令解压压缩包:

tar -xvf memory_edit_v2.9.tar.xz

查看内存分配设置

在完成压缩包解压后,执行以下命令查看内存分配设置:

cd memory_edit
./memory_edit.sh -p

内存分配设置结果示例如下,其中 Info: get max memory size ... 显示的结果是每个设备可配置的最大内存,Info: get now memory size ... 显示的结果是每个设备目前所分配的内存。

linaro@aibox-1684x:~/memory_edit$ ./memory_edit.sh -p
INFO: version: 2.9
Info: use dts file /home/linaro/memory_edit/output/bm1684x_se7_v1_mini.dts
Info: =======================================================================
Info: get ddr information ...
Info: ddr12_size 8589934592 Byte [8192 MiB]
Info: ddr3_size 4294967296 Byte [4096 MiB]
Info: ddr4_size 4294967296 Byte [4096 MiB]
Info: ddr_size 16384 MiB
Info: =======================================================================
Info: get max memory size ...
Info: max npu size: 0x1dbf00000 [7615 MiB]
Info: max vpu size: 0xc0000000 [3072 MiB]
Info: max vpp size: 0x100000000 [4096 MiB]
Info: =======================================================================
Info: get now memory size ...
Info: now npu size: 0xf6e00000 [3950 MiB]
Info: now vpu size: 0x80000000 [2048 MiB]
Info: now vpp size: 0xc0000000 [3072 MiB]

修改内存分配设置

可参考以下命令进行内存分配设置,其中输入的三个参数是需要 NPU、VPU、VPP 配置的大小的十进制数字,单位 MiB;或者为十六进制数值,单位 Byte。

# 十进制,单位MiB
./memory_edit.sh -c -npu 2048 -vpu 2048 -vpp 2048
# 十六进制,单位Byte
./memory_edit.sh -c -npu 0x80000000 -vpu 0x80000000 -vpp 0x80000000

执行以上命令之一后,检查输出中是否有 Error ,以及类似于如下输出中三个部分的大小是否与所需要配置的大小相同。

Info: output configuration results ...
Info: vpu mem area(ddr3): 0x8000000 [128 MiB] 0x20000000 -> 0x27ffffff
Info: ion npu mem area(ddr1): 0x80000000 [2048 MiB] 0x24100000 -> 0xa40fffff
Info: ion vpu mem area(ddr3): 0x80000000 [2048 MiB] 0x80000000 -> 0xffffffff
Info: ion vpp mem area(ddr4): 0x80000000 [2048 MiB] 0x80000000 -> 0xffffffff
Info: =======================================================================
Info: start check memory size ...
Info: check npu size: 0x80000000 [2048 MiB]
Info: check vpu size: 0x80000000 [2048 MiB]
Info: check vpp size: 0x80000000 [2048 MiB]
Info: check edit size ok
Info: en_emmcfile ok

如检查无误,请保存当前工作,并参照以下操作​将修改后的 emmcboot.itb 文件替换启动分区中的启动映像,最后重启机器使修改生效。

sudo cp emmcboot.itb /boot
sync
sudo reboot