1.编译 u-boot,kenerl,rootfs
首先在虚拟机上搭建好环境之后。通过 执行makefile,遇到错误解决错误(记得要先安装交叉编译工具链),执行成功后会在
/share/Hi3518E_SDK_V1.0.3.0/osdrv/pub/image_uclibc ,目录下有烧写好的u-boot,kenerl,rootfs,的镜像文件。
2.烧录
(1)如果是第一次烧录u-boot,要使用HiTool工具,具体操作看文档。
(2)烧录完成后在开发板上运行u-boot,
print:打印u_boot配置信息
set serverip 192.168.1.114 //要把serverip设置成虚拟机的地址。
(3)设置u-boot,kenerl,rootfs分区大小
hls@ubuntu:~/share/Hi3518E_SDK_V1.0.3.0/osdrv/pub/image_uclibc$ du -h *
4.8Mt-hirootfs_hi3518ev200_64k.jffs2
268K u-boot-hi3518ev200.bin
2.6M uImage_hi3518ev200
通过文件的大小可以总结出
u-boot 1M
kerenl 3M
rootfs 12M
烧写u-boot
hisilicon# mw.b 0x82000000 ff 0x100000 /* 对内存初始化*/
hisilicon# tftp 0x82000000 u-boot-hi3518ev200.bin /*U-boot下载到内存*/
hisilicon# sf probe 0 /*探测并初始化SPI flash*/
hisilicon# sf erase 0x0 0x100000 /*擦除 1M大小*/
hisilicon# sf write 0x82000000 0x0 0x100000 /*从内存写入SPI Flash*/
烧写 kerenl
hisilicon# mw.b 0x82000000 ff 0x400000 /* 对内存初始化*/
hisilicon# tftp 0x82000000 uImage_hi3518ev200 /*U-boot下载到内存*/
hisilicon# sf probe 0 /*探测并初始化SPI flash*/
hisilicon# sf erase 0x100000 0x400000 /*擦除 1M大小*/
hisilicon# sf write 0x82000000 0x100000 0x400000 /*从内存写入SPI Flash*/
烧写 rootfs
hisilicon# mw.b 0x82000000 ff 0xc00000 /* 对内存初始化*/
hisilicon# tftp 0x82000000 t-hirootfs_hi3518ev200_64k.jffs2 /*U-boot下载到内存*/
hisilicon# sf probe 0 /*探测并初始化SPI flash*/
hisilicon# sf erase 0x400000 0xc00000 /*擦除 1M大小*/
hisilicon# sf write 0x82000000 0x400000 0xc00000 /*从内存写入SPI Flash*/
3.烧写完毕后要配置启动变量
对应的设置命令
set bootcmd' sf probe 0 sfread 0x82000000 0x100000 0x400000 bootm 0x82000000 '
/*sf probe 0 选中flash bootm 启动*/
set bootargs root=/dev/mtdblock2 rootfstype=jffs2 console=ttyAMA0,115200 mem=32M mtdparts=hi_sfc:1024k(u-boot),3072k(kernel),12288k(rootfs)