1.海思中的內存
海思中的內存分為OS內存和MMZ內存。OS是給系統使用的,MMZ是MMP使用的。
2.MMZ內存分配 /proc/media-mem
這里記錄了當前MMZ內存被分配至哪些模塊,被誰使用了。

3.查看系統內存
free [-b/k/m/g] 后面跟的是以什么單位顯示
https://www.cnblogs.com/ultranms/p/9254160.html

4.修改OS內存和MMZ內存
在uboot命令行模式下:
setenv bootargs 'mem=512M console=ttyAMA0,115200 rw root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)' saveenv
設置os內存為512M。
修改/ko里面的load3521d。

將MMZ內存修改為512M。
5.查看OS和MMZ內存分配情況
該目錄下\SDK\Hi3521D V100R001C02SPC040\ReleaseDoc\zh\01.software\board\Hi3521DV100,有一個《Hixxx SDK安裝以及升級使用說明.txt》中的第六章描述了“地址空間分配與使用”
第六章 地址空間分配與使用 1、DDR內存管理說明 1)所有DDR內存中,一部分由操作系統管理,稱為OS內存;另一部分由MMZ模塊管理,供媒體業務單獨使用,稱為MMZ內存。 2)OS內存起始地址為0x40000000,內存大小可通過bootargs進行配置,例如第三章中的setenv bootargs 'mem=64M ... ',表示分配給操作系統內存為64M,您可以根據實際情況進行調整。 3)MMZ內存由MMZ內核模塊管理(mpp/ko_hi35xx目錄下的mmz.ko),加載mmz模塊時,通過模塊參數指定其起始地址及大小,load腳本中根據osmem大小來進行計算,例如: ./load3521d -a -ad 6134 -osmem 64 您也可以通過修改mpp/ko目錄下load3521d腳本中的mmz模塊參數,來修改其起始地址和總大小。 4)請注意MMZ內存地址范圍不能與OS內存重疊。 2、DEMO板DDR內存管理示意 以容量為512MBytes的DDR內存為例,以下為根據本文檔和SDK默認配置得到的內存管理示意圖: DDR: -----|-------| 0x40000000 # Memory managed by OS. 64M | OS | | | -----|-------| 0x44000000 # Memory managed by MMZ block anonymous. 442M | MMZ | | | -----|-------| 0x5FA00000 # Memory managed by MMZ block jpeg. 6M | jpeg | | | -----|-------| 0x60000000 # End of memory managed by MMZ. 注意: (1)用戶在配置啟動參數時需要設置OS的管理內存為64M,“setenv bootargs 'mem=64M ...”。 (2)系統啟動后,配置load3521d腳本中指定總內存為512(mem_total=512),加載時指定osmem為64(-osmem 64),則MMZ管理的內存為448M。 (3)如果有特殊應用,可以自行修改load3521d腳本,進行mmz區域划分,如“insmod hi_osal.ko mmz=anonymous,0,0x44000000,442M:jpeg,0,0x5FA00000,6M anony=1”。
