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

《海思Hi35xx开发日记——之No.3》 先行者 2023-10-26 15:46:33 357


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

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

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

易百纳社区

       这里写着 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易百纳社区

我们可以看到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命令:重启


参考:tftp命令使用详解;

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


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

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 3 2 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
先行者
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区