300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 海思3516dv300如何使用tftp烧录uboot 内核 文件系统

海思3516dv300如何使用tftp烧录uboot 内核 文件系统

时间:2024-05-08 16:23:54

相关推荐

海思3516dv300如何使用tftp烧录uboot 内核 文件系统

海思3516dv300如何使用tftp烧录uboot、内核、文件系统

准备工作

1、win10电脑、开发板、网线、串口2、secureCRT(连接串口)、tftpd32.exe软件。

以 128M SPI NAND Flash 为例

1. 地址空间说明

以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。

2、配置tftp服务器

tftp服务器的作用就是将烧录用到的uboot等相关文件拷贝到从tftp服务器目录下下载到板子上。

打开tftpd32.exe软件,如下图所示,tftfp32既然是个ftfp服务器,那么首先就要选择文件的路径,点击Browse,选择要传输文件的路径:

接下来选择你要给某个设备传输文件的IP(比如开发板,路由器等),这个ip一定不能选错哦。同时还要保证这个IP和windows下的IP在同一个网段下。注意,如果没有目标ip可以选择,通常是因为目标没有上电。

选择好路径和IP后,可以用目标机ping windows的IP,能ping通就表示可用。

3、 修改bootargs、bootcmd和serverip参数

进入uboot命令行后,你可以输入“print”命令,打印查看现在的环境变量,接下来就是修改几个重要的环境变量:bootargs、bootcmd和serverip。输入如下命令做修改

setenv bootargs ''setenv bootcmd ''setenv serverip 'your computer IP'saveenv

注意: ip那里得修改成你电脑的ip。

将这两个信息做屏蔽,这样系统上电后只会停留在uboot模式,方便调试uboot(这里其实就可以用HiTool.exe软件进行uboot、kernel和rootfs等进行烧写了)。

参数解释

bootargs:用于配置启动内核参数、系统分区等;bootcmd:用于启动uboot后,内核自启动相关的参数。serverip:确保开发板与电脑同一个网段,该参数是电脑的IP

如果出现 *** ERROR: `ipaddr’ not set

则再输入如下命令:

setenv ipaddr 192.168.1.102

4. 烧写 u-boot

在secureCRT软件hisi3516dv300板子的串口终端依次输入如下命令:

mw.b 0x82000000 0xff 0x100000 tftp 0x82000000 u-boot-hi3516dv300.bin nand probe 0;nand erase 0x0 0x100000;nand write 0x82000000 0x0 0x100000

含义说明:

mw.b 0x82000000 0xff 0x100000:对内存进行初始化,其中0x82000000为flash内存地址**tftp 0x82000000 u-boot-hi3516dv300.bin ** :U-boot下载到内存nand probe 0:探测并初始化nand flashnand erase 0x0 0x100000:擦除1M大小nand write 0x82000000 0x0 0x100000:从内存写入nand flash

5. 烧写内核

mw.b 0x82000000 0xff 0x400000 tftp 0x82000000 uImage_hi3516dv300 nand erase 0x100000 0x400000;nand write 0x82000000 0x100000 0x400000

6.烧写文件系统

yaffs2文件系统的选型要根据自己板子的flash来,我的flash是nand 128KB\128M的,选择的是2k_24bit。

mw.b 0x82000000 0xff 0x7b00000;tftp 0x82000000 rootfs_hi3516dv300_2k_24bit.yaffs2;nand erase 0x500000 0x7b00000;nand write.yaffs 0x82000000 0x500000 9C1F00

还要注意下面的写到内存的大小,需要计算yaffs2文件系统的大小,是文件系统镜像的十进制转换成的十六进制大小。

7. 设置启动参数

(注意 linux-4.9.y kernel 默认文件系统只读,需要在 bootargs 中加入rw 选项,文件系统才可读写)

setenv bootargs 'mem=128M console=ttyAMA0,115200 coherent_pool=2M root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hinand:1M(boot),4M(kernel),123M(rootfs)' setenv bootcmd 'nand read 0x82000000 0x100000 0x400000;bootm 0x82000000' saveenv

8. 重启系统

reset

烧写成功,如下图

注意:当有uboot时,可以不用重新烧写uboot,只需要重新烧写内核和文件系统即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。