u-boot烧写emmc,并从emmc读数据到内存启动内核

使用的是petalinux-v2015.4-final版本编译出来的U-BOOT及image.ub。板子内核芯片为ZYNQ-7021。

mmc info 显示存储设备的信息,在切换到emmc设备下(执行mmc dev 0),执行mmcinfo可看到存储设备各属性信息

1.使用mmc erase addr blk# cnt    命令把emmc中的部分存储空间清空。mmc erase 0 12500

其中addr指内存中的目标位置起始地址,blk#指被拷贝内容起始存储块的块号,cnt指要被拷贝的块数。一般每个块的大小为512byte。所以blk和cnt参数的单位都是块,一般为512字节。化成十六进制就是0x200。在使用mmc read命令时要注意后面的参数换算,即offset/0x200 = blk,size/200=cnt。

2.用tftf把image.ub下载到内存中:tftp 0x800000 image.ub 或者tftpboot 0x800000 image.ubWindows下TFTP服务器下载链接

3.把内存中的内容写到emmc中指定位置,我写在0x0开始的位置: mmc write 0x800000 0 12500

4.设置环境变量并保存在启动过程中将emmc中的内容读取到0x1000000内存中并启动内核: setenv boot_emmc 'mmc read 0x1000000 0x0 12500 && bootm 0x1000000'(后面的bootm 0x1000000是从内存这个位置启动,为什么是0x1000000在这里有简单说到

最后就直接启动就可以了,我这里是直接在u-boot下面run,如图:

注意:  我这里只有一个存储设备所以是直接操作,如果有多个emmc或者SD用命令: mmc dev 1 切换到相应设备才能对其读)。这里有一篇对在u-boot对FLASH烧写的文章可以和这篇对照查看链接:烧写到flash启动内核网址:https://mp.csdn.net/postedit/80930124

  • 8
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值