海思方案中地址空間的分配與使用
1、DDR記憶體管理說明
(1)所有DDR記憶體中,一部分由作業系統管理,稱為OS記憶體;另一部分由MMZ模組管理,供媒體業務單獨使用,稱為MMZ記憶體。
(2)OS記憶體起始地址為0x80000000,記憶體大小可通過bootargs進行配置,例如setenv bootargs 'mem=64M ... ',表示分配給作業系統記憶體為64M,可以根據實際情況進行調整。
(3)MMZ記憶體由MMZ核心模組管理(mpp/ko_hi35xx目錄下的mmz.ko),載入mmz模組時,通過模組引數指定其起始地址及大小,load指令碼中根據total和osmem大小來進行計算,例如:./load3518e -a -sensor ar0230 -osmem 32 -total 64。也可以通過修改mpp/ko目錄下load3518e指令碼中的mmz模組引數,來修改其起始地址和總大小。
(4)MMZ記憶體地址範圍不能與OS記憶體重疊。
2、DDR記憶體管理示意
SDRAM範圍:80000000-83FFFFFF
linux系統使用的記憶體:0x80000000-0x81FFFFFF
mpp使用的MMZ記憶體:0x82000000-0x83FFFFFF
注意:
(1)使用者在配置啟動引數時需要設定OS的管理記憶體為32M,“setenv bootargs 'mem=32M ...”。
(2)系統啟動後,配置load3518e指令碼中指定總記憶體為64(-total 64),載入時指定osmem為32(-osmem 32),則MMZ管理的記憶體為32M。
(3)如果有特殊應用,可以自行修改load3518e指令碼,進行mmz區域劃分,如“insmod mmz.ko mmz=anonymous,0,0x82000000,30M:jpeg,0,0x83D00000,2M anony=1”。
(4)在Hi3518EV201的bootargs的配置中,設定的啟動地址請不要寫為0x82000000,因為此晶片的DDR總大小為32M,地址邊界為0x82000000,建議為0x81000000。=