海思3536开发板

简介: 海思3536开发板

海思3536开发板默认是256M的nand,在实际的产品中容量远远不能满足需求。根据上层软件的需要,硬件工程师把nand扩容到1G的存储空间。想要系统正常运行,需要以下操作:

1.修改Hitool的分区表

海思3536 使用Linux双系统:主系统和从系统。主系统主要控制4个A17核心。从系统主要控制A7和多媒体单元。我使用的事主系统来引导 从系统。把所有的应用程序放到了mashter_fs中。修改nand之前住文件系统只有235M

硬件扩容到1G后,增加主文件系统到900M

2.修改uboot加载的分区表

修改完烧写工具分区只能完成把对应的分区文件烧写到对应分区,烧写完后还要对uboot的引导参数进行修改。

setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),235M(rootfs)'

setenv bootcmd 'nand read 0x42000000 0x100000 0x400000;bootm 0x42000000'

setenv slave_autostart 1

setenv slave_bootcmd 'nand read 0x81000000 0xF000000 0x80000;nand read 0x82000000 0xF100000 0x400000;nand read 0x83000000 0xF500000 0x600000;bootm 0x81000000 0x82000000 0x83000000'

setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'

saveenv

解释:

引导参数的第一句意思是我的内存是512M的,使用了串口0作为控制台,文件系统位置在/dev/mtdblock2 这个分区,系统类型是yaffs2的。主系统的分区表分别对应1M 4M 和235M。第一句是大部分uboot系统必须有的引导参数

第二行意思是uboot启动后将nand的0x100000(1M)位置往后4M的空间到内存的 0x42000000 这个位置,然后跳转到0x42000000 执行。总结,uboot把kernel从nand加载到ddr,并开始由uboot进入kernel

第三行是海思双系统独有的,设置让从系统自动加载,不需要主系统手动执行

第四行是uboot把从系统的uboot kernel 和文件系统读到内存中。起始地址分别是240M 241M 245M 转成十六进制后就是 0xF000000 ,0xF100000 0xF500000 。读取的大小分别是0x80000(1M) 0x400000(4M) 和0x600000(6M)

修改后的uboot引导参数:

setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),900M(rootfs)'

setenv bootcmd 'nand read 0x42000000 0x100000 0x400000;bootm 0x42000000'

setenv slave_autostart 1

setenv slave_bootcmd 'nand read 0x81000000 0x38900000 0x80000;nand read 0x82000000 0x38A00000 0x400000;nand read 0x83000000 0x38E00000 0x600000;bootm 0x81000000 0x82000000 0x83000000'

setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'

saveenv

在这里我遇到一个yaffs文件系统的问题

[点击并拖拽以移动]

Current hardware config, pagesize:4096, ecctype:24bits/1K

1.请检查当前单板Flash与烧写分区中的Flash类型是否一致;
2.当前fastboot不支持该命令;

这个问题是之前的nand pagesize和ecctype不一样,只需要重新制作yaffs2文件系统即可。指令是:./mkyaffs2image610 rootfs_glibc_master rootfs_glibc_2k_4bit_zmj_1g.yaffs2 2 4

[点击并拖拽以移动]

[点击并拖拽以移动]

我只是增大了主操作系统的大小,由235M到900M,其他分区大小没有变化,但是从系统的起始地址发生了变化。从240M 241M 245M到905M 906M 910M。对应的uboot参数计算方法如下

[点击并拖拽以移动]

[点击并拖拽以移动]

[点击并拖拽以移动]

最后进入Linux 主系统系统验证是否成功

[点击并拖拽以移动]

相关文章
|
7月前
|
芯片
Keil5中添加C51芯片
Keil5中添加C51芯片
937 0
|
7月前
|
IDE 中间件 开发工具
【瑞萨MCU】开发环境搭建之 MDK + RASC
【瑞萨MCU】开发环境搭建之 MDK + RASC
|
7月前
|
IDE 开发工具 Android开发
【瑞萨MCU】开发环境搭建之 e2 studio
【瑞萨MCU】开发环境搭建之 e2 studio
118 0
|
Ubuntu Linux
嵌入式Linux开发: 龙芯2K1000使用EJTAG烧写POPM
嵌入式Linux开发: 龙芯2K1000使用EJTAG烧写POPM
618 0
嵌入式Linux开发: 龙芯2K1000使用EJTAG烧写POPM
XXXXXXXXX开发板XXXXXXXXX
XXXXXXXXX开发板XXXXXXXXX
|
存储 Linux API
ZYNQ裸板:串口篇
使用 PS 的时候,通常会添加 UART 控制器,用于打印信息和调试代码。除此之外, PS 在和外部设备通信时,也会经常使用串口进行通信。先从UART控制器开始讲起吧,从简单的测试再到工程实例。
938 0
ZYNQ裸板:串口篇
|
机器人 Linux C语言
openwrt开发使用-选择芯片编译烧录
openwrt开发使用-选择芯片编译烧录
584 1
openwrt开发使用-选择芯片编译烧录
|
异构计算
FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装
FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装
313 0
FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
295 0
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)
167 0
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)

热门文章

最新文章