海思u-boot烧写内核、文件系统的说明

海思u-boot烧写内核、文件系统的步骤笔记

1. fast-boot

fast-boot一般通过串口,使用HiTool进行烧写

2. 烧写uboot+内核+根文件系统

上电在串口按任意键进入uboot目录下

烧写
setenv serverip  192.168.1.xx;  //设置pc端ip
setenv ipaddr  192.168.1.10;	//设置板端ip为1.10
sf probe 0;						//连接spi flash
mw.b 0x82000000 ff 0x1000000    //从0x82000000开始,长度为0x10000000填充为0xff
tftp 0x82000000 Hi3516A_SDI_20170627.bin;  //从tftp服务器下载Hi3516A_SDI_20170627.bin到0x82000000开始的空间
sf erase 0x000000 0x1000000     //擦除从0x0开始,长度0x1000000空间
sf write 0x82000000 0x000000 0x1000000    //将0x82000000空间的数据写入到0x0开始的空间,写入长度0x1000000

reset;   //重启

3. 附录

3.1 板子IP设置

setenv -f ethaddr 00:70:XX:00:00:01;  //为mac地址

setenv gatewayip 172.19.24.254;   //网关

setenv ipaddr 172.19.24.XXX;     //板子IP

setenv netmask 255.255.255.0;  //子网掩码

setenv serverip 172.19.24.XXX;  //电脑IP

saveenv

3.2 uboot sf命令

uboot中如果支持spi/qspi flash, 那么可以使用sf的erase, read, write命令操作spi flash

  • sf read 用来读取flash数据到内存

  • sf write 写内存数据到flash

  • sf erase 擦除指定位置,指定长度的flash内容, 在进行写flash的时候一定要先进行擦除,否则会失败,因为flash只能从1变为0。

具体用法

sf - SPI flash sub-system
 
Usage:
sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus
                                  and chip select
sf read addr offset len - read `len' bytes starting at
                                  `offset' to memory at `addr'
sf write addr offset len        - write `len' bytes from memory
                                  at `addr' to flash at `offset'
sf erase offset [+]len          - erase `len' bytes from `offset'
                                  `+len' round up `len' to block size
sf update addr offset len       - erase and write `len' bytes from memory
                                  at `addr' to flash at `offset'

用法:

sf probe 0

在使用sf的其他命令之前必须先进行此操作进行连接flash。否则会出现如下情况。

img

sf write 0x82000000 0x8000 0x20000

把内存0x8200 0000处的数据, 写入flash的偏移0x80000, 写入数据长度为0x20000(128KB), 操作偏移和长度最小单位是Byte

sf read 0x82000000 0x10000 0x20000

把flash偏移0x10000(64KB)处, 长度为0x20000(128KB)的数据, 写入到内存0x82000000, 操作偏移和长度最小单位是Byte

sf erase 0x0 0x10000

擦除偏移0x0处, 到0x10000之间的擦除块, 擦除操作是以erase block为单位的, 要求offset和len参数必须是erase block对齐的

从sf命令,可以看出几点:

  1. spi flash没有oob数据存在, 也就是不用考虑EDC ECC, 也没有坏块管理概念.

  2. 支持Byte级的读写操作, 支持随机访问.

如何查看flash的内容

可以结合uboot md命令查看内存数据

md 0x82000000 0x100

打印0x82000000开始, 长度范围0x100字节的内存数据

3.3 uboot常用命令之mw

mw //用于修改内存地址上的值

用法:

mw.b 0x40008000 0xab 100 //从内存地址0x40008000开始的0x100字节空间,设值为0xab
mw.w 0x40008000 0xabcd 100 //从内存地址0x40008000开始的0x200字节空间,每16位值设为0xabcd
mw.l 0x40008000 0xabcdef88 100 //从内存地址0x40008000开始的0x400字节空间,每32位值设为0xabcdef88

mw填充内存命令

mw[.b,.w,.l] address value [count]

表示以[.b,.w,.l]为单位往开始地址为address的内存填充count 个值为 value 的数据

例:

mw.b 82000000 ff 100000从地址0x82000000地址开始填充0x100000(1M字节)个值为0xff的数据

参考链接

UBOOT常用命令用法
uboot sf 命令用法

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值