《海思Hi35xx开发日记——之No.3》

        在上一篇我们已经说到如何让海思Hi3519A跑起来,输入几个命令是一顿操作猛如虎。但我们对这些命令还有作深入一点的了解,所以这篇我们专门是为命令行的探讨写的。

        在Hi3519平台上跑的是Linux系统,所以我们通常所说的命令其实就是shell命令,针对的是Linux系统而言的。那么我们言归正传,开始吧!

1,mw 命令:我们在系统启动时,串口命令终端上输入  mw --help  来先了解一下这命令的一般用法。

《海思Hi35xx开发日记——之No.3》_第1张图片这里写着 mw  即为 memory write 的意思,就是写入内存的命令。通常的格式为 mw[.b, .w, .l]  address value [count]    ==>   mw [内存地址] [值] [长度]  ;即是往内存的 address地址里写入 value的值,写入的数据长度为 count。其中附加参数[.b, .w, .l]分别为按照字节、字、长字写内存。比如我们在上一篇里边用到的命令行: mw.b 0x22000000 ff 0x1000000                     /* 对内存初始化*/,就是从内存地址0x22000000开始到0x22000000 + 0x1000000这一段内存里全给它写0xff进去。mw.b 就是按照以字节大小写入内存,0xff刚好就是一个字节的大小。

2,tftp命令:TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:

1),是linux服务器端的tftp-server支持;

2),是嵌入式目标系统的tftp-client支持;

因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。我们只要配置好linux服务器端tftp-server,我这边对应的就是ubuntu上要配置好。关于配置TFTP网上有相关的介绍,这里就不作详细的说明了。

在ubuntu上 查看tftp服务是否开启:  netstat -a | grep tftp    如果显示结果为:表明服务已经开启,就表明tftp配置成功了。

Busybox中tftp命令的用法

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。

-g表示下载文件(get)

-p表示上传文件(put)

-l表示本地文件名(local file)

-r表示远程主机的文件名(remote file)

例1:要从远程主机192.168.1.2上下载,则应输入以下命令

tftp -g -r embedexpert 192.168.1.2

例2:(我们上一篇用到的命令)

tftp 0x22000000 uImage_hi3519av100_smp

把文件uImage_hi3519av100_smp通过tftp加载到板子内存的0x22000000处,uImage_hi3519av100_smp本身是在我们TFTP服务器上(ubuntu)。

例3:

tftp 193.169.3.42tftp>connect

tftp>get demon.txt

tftp>status

tftp>quit

这就是从共享处通过tftp下载文件。

3,nand命令: 我们在串口终端上输入 nand --help《海思Hi35xx开发日记——之No.3》_第2张图片

我们可以看到nand命令里的可带参数还是不少的,我们说说那常用的几个。

1),nand info :显示可使用的 Nand Flash的基本信息

2),nand erase off size:Nand Flash 檫除命令,擦除 Nand Flash 的 off偏移地址处的 size 字节的数据

3),nand write addr off  size:Nand Flash 烧写命令,将 SDRAM 的 addr 地址处的 size 字节的数据烧写到 Nand 的 off 偏 移地址。

4),nand read addr off  size:Nand Flash 读取命令,从 Nand 的 off 偏移地址处读取 size 字节的数据到 SDRAM 的 addr地址。

5),nand write.yaffs2  addr off size:烧写 yaffs 映像专用的命令,这里需要注意,这个offset必须是nand pagesize的整数倍,
即(512+16或者2048+64)的整数倍。

6),nand bad: 显示 Nand Flash 的坏块

7),nand scrub off size: 可彻底擦除整块 Nand Flash 中的数据,包括OOB。可以擦除软件坏块标志。

4,setenv命令:这个是在uboot阶段上设置环境变量的命令,我们要用TFTP那么就必需要过IP地址设置这一关,设置这个IP只针对uboot有用的,进入到kernel以后就没用了。但我们在用tftp烧写固件时是在uboot阶段完成的,所以我们要用setenv命令设置相关的环境变量。

setenv serverip 192.168.12.50   /*设置服务器IP(TFTP服务器)*/
setenv ipaddr 192.168.12.23     /*设置板子的IP(只uboot上有效)*/
setenv gatewayip 192.168.12.1 /*设置板子的网关*/
setenv ethaddr 11:22:33:44:55:37 /*设置板子网卡的MAC地址*/

setenv bootcmd nand read 0x22000000 100000 400000 \; bootm 0x22000000  /*设置bootcmd,从nand flash的某一个地址开始读kernel进内存,并且从内存中的这个地址开始跑*/

setenv bootargs mem=480M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock2 rw rootfstype=yaffs2 init=/linuxrc mtdparts=hinand:1M(uboot),4M(kernel),20M(rootfs) /*设置bootargs的参数,rootfs走那个分区、波特率、内存大小、串口以及系统分区表*/
saveenv                                       /*保存以前上设置到 flash 指定的地址上,不然重启后就没了*/

5,boot命令:重启

 

参考:http://www.sohu.com/a/244245445_781584;

              https://www.cnblogs.com/fly-fish/archive/2011/03/14/1983907.html;等等。

 

好了,今天就先写到这里了。明天见!

 

你可能感兴趣的:(Hi35xx,&,linux开发)