hi3516cv610管理ddr的内存,具体操作

hi3516cv610管理ddr的内存,具体操作

目前实现了3中的ddr内存管理

1、cv610_20s  nand_flash 管理ddr内存

2、cv610_10b   nor_flash 管理ddr内存

3、cv610_20s   nor_flash 管理ddr内存

        3.1)这里是想给 mmz分配更多内存

        3.2)这里是想给 os分配更多内存

一、cv610_20s  nand_flash 管理ddr内存分配

1)进入ko脚本里修改MMZ内存大小及起始地址

load3516cv610_20s_debug脚本

cv610_20s的ddr大小为 128MByte

分配状况

Linux os 32MByte 系统起始地址 0x4000 0000

MMZ 96MByte MMZ起始地址 0x4200 0000

默认 load3516cv610_xxx内存分配情况

也就是说给OS内存32Mbyte,MMZ内存96MByte

MMZ的起始地址 0x4200 0000 ,怎么算的呢?

0x4000 0000肯定是16进制数据

OS内存占 32MByte

32MByte = 32x1024 KByte = 32768 KByte = 32768x1024 Byte = 33554432 Byte(10进制)

33554432 Byte——> 转为16进制 0x200 0000

系统的起始地址为 0x4000 0000,则

 0x4000 0000

+ 0x200 0000

= 0x4200 0000

所以 mmz_start= 0x4200 0000

也就是说 MMZ内存起始地址为 0x4200 0000

MMZ内存总共大小为 96MByte

想给OS内存更大空间

令mmz_size = 80MByte

os_size = 48MByte

48MByte = 48x1024 KByte = 49152 KByte = 49152x1024 Byte = 50331648 Byte(10进制)

50331648 Byte——>转为16进制 0x300 0000‬

系统起始地址 0x4000 0000

 0x4000 0000

+ 0x300 0000

= 0x4300 0000

所以 mmz_start= 0x4300 0000

也就是说 MMZ内存起始地址为 0x4300 0000

MMZ内存总共大小为 80MByte

2)进入uboot修改OS内存大小

一共4条命令

给OS内存分配 48MByte空间

setenv bootargs 'mem=48M console=ttyAMA0,115200 clk_ignore_unused root=ubi0:ubifs rootfstype=ubifs rw ubi.mtd=3 mtdparts=nand:512K(boot),512K(env),4M(kernel),32M(rootfs)'; sa
setenv bootcmd 'nand read 0x41000000 0x100000 0x400000; bootm 0x41000000'; sa

一定要 save,不然分配的空间不生效

save
reset

然后就修改成功了

二、cv610_10b   nor_flash 管理ddr内存分配

因为cv610_10b的ddr只有 64MByte

关于./ko/load3516cv610/load3516cv610_10b_debug脚本默认分配的size

就是说

os_size = 32M

mmz_size = 32M

目前我们想分配更多的OS内存

令os_size = 36MByte

mmz_size = 28MByte

36MByte = 36x1024 KByte = 36x1024x1024 Byte = 37,748,736 Byte(10进制)

37,748,736 Byte——>转为16进制 0x‭240 0000‬

系统起始地址 0x4000 0000

 0x4000 0000

+ 0x240 0000

= 0x4240 0000

所以 mmz_start= 0x4240 0000

所以mmz_size = 28M

./ko/load3516cv610/load3516cv610_10b_debug脚本为

2)进入uboot修改OS内存大小

此命令为 nor_flash命令

setenv bootargs 'mem=36M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock3 rootfstype=jffs2 rw mtdparts=sfc:512K(boot),512K(env),4M(kernel),10M(rootfs)'; save

setenv bootcmd 'sf probe 0; sf read 0x41000000 0x100000 0x400000; bootm 0x41000000';

一定要save才能生效

save

reset

uboot启动参数修改成功

板端启动成功

三、cv610_20s   nor_flash 管理ddr内存分配

3.1)这里是想给 mmz分配更多内存

就是说

os_size = 32M

mmz_size = 96M

目前我们想分配更多的MMZ内存

令os_size = 28MByte

mmz_size = 100MByte

28MByte = 28x1024 KByte = 28x1024x1024 Byte = 29360128 Byte(10进制)

29360128 Byte——>转为16进制 ‭0x1C0 0000‬

系统起始地址 0x4000 0000

 0x4000 0000

+ 0x1C0 0000

= 0x41C0 0000

所以 mmz_start= 0x41C0 0000

所以mmz_size = 100M

./ko/load3516cv610/load3516cv610_20s_debug脚本为

2)进入uboot修改OS内存大小

此命令为 nor_flash命令

setenv bootargs 'mem=28M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock3 rootfstype=jffs2 rw mtdparts=sfc:512K(boot),512K(env),4M(kernel),10M(rootfs)'; save


setenv bootcmd 'sf probe 0; sf read 0x41000000 0x100000 0x400000; bootm 0x41000000';


save


reset

uboot启动参数修改成功

板端启动成功

3.2)这里是想给 os分配更多内存

 

就是说

os_size = 32M

mmz_size = 96M

目前我们想分配更多的 OS内存

令os_size = 36MByte

mmz_size = 92MByte

36MByte = 36x1024 KByte = 36x1024x1024 Byte = 37748736‬Byte(10进制)

37748736 Byte——>转为16进制 0x240 0000

系统起始地址 0x4000 0000

 0x4000 0000

+ 0x240 0000

= 0x4240 0000

所以 mmz_start= 0x4240 0000

所以mmz_size = 92M

./ko/load3516cv610/load3516cv610_20s_debug脚本为

2)进入uboot修改OS内存大小

此命令为 nor_flash命令

setenv bootargs 'mem=36M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock3 rootfstype=jffs2 rw mtdparts=sfc:512K(boot),512K(env),4M(kernel),10M(rootfs)'; save
 
 
setenv bootcmd 'sf probe 0; sf read 0x41000000 0x100000 0x400000; bootm 0x41000000';
 
 
save
 
 
reset


uboot启动参数修改成功
 

板端启动成功

3.3)给 os分配更大的运行内存,将 os_size = 44MB,mmz_size = 84MB操作

os_size=44M
44M=46,137,344 = 0x2C0 0000
0x4000 0000
+0x2C0 0000
=0x42C0 0000

ko的load3516cv610_20s_debug脚本为:
mmz_start = 0x42C0 0000
mmz_size = 84M


os_size, uboot里修改

setenv bootargs 'mem=44M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock3 rootfstype=jffs2 rw mtdparts=sfc:512K(boot),512K(env),4M(kernel),10M(rootfs)'; save


setenv bootcmd 'sf probe 0; sf read 0x41000000 0x100000 0x400000; bootm 0x41000000';
 
 
save
 
 
reset



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张海森_168820

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值