zoukankan      html  css  js  c++  java
  • 用 S5PV210 学习 Linux (三) SD卡下载

    学习地址:http://edu.51cto.com/lesson/id-63015.html http://blog.csdn.net/karven_/article/details/52015325

    1、用 USB  下载 比较方便

    2、用 SD 卡 更新产品 程序,有时候 会 比较 方便一点

    3、我的S5PV210 开发板 有个 拨码开关,拨到USB 启动 或者 EMMC 启动

    4、选择EMMC启动 会首先从 SD 的通道0(已经接了EMMC 芯片 )  启动,如果通道0启动失败(校验和启动),就会从通道2(可以插大SD卡 )启动,因此要 破坏 通道0的启动,才能 从通道2启动。

    5、在Linux和安卓系统下,擦出 SD 的通道0中 uboot 的 一个扇区,这样才能从SD的通道2启动。擦除方法是:

      ①在Linux或者安卓系统下  擦除 uboot 的方法,如下:

      指令一:busybox     dd     if=/dev/zero     of=/dev/block/mmcblk0     bs=512     seek=1     count=1     conv=sync

      指令二:sync

    解释:

    busybox     dd     if=/dev/zero     of=/dev/mmcblk0     bs=512     seek=1     count=1     conv=sync

    if=/dev/zero:输入文件名为/dev/zero,一个全0 的设备!

    of=/dev/block/mmcblk0:输出文件名为/dev/block/mmcblk0,EMMC 的扇区0.

    bs=512:读块和写块的大小都为512B(这里的输出文件为一个块设备,块大小的设置跟块设备中每块的大小相关),同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。

    seek=1:跳过第一个块。从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。

    count:只拷贝一个块,仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。

    conv:若读取的输入块不足512B,那么不足的部分填充NULL。

    这句话的意思是把板载INAND 的 第一个扇区用全0来填充,这样iNAND的bootloader的 校验和(IROM的代码线程先从通道0读取前16KB,然后计算校验和)就会不通过,所以启动会失败,CPU 会自动从SD2启动。

    ②在uboot 下擦除 inand(通道0,EMMC)下的 uboot,这样 来达到 重启 从 SD2启动的目的,方法如下:

      在uboot下,使用help movi 来查看 movi 指令的使用方法,如下:

      1. movi init - Initialize moviNAND and show card info
      2. movi read {u-boot | kernel} {addr} - Read data from sd/mmc
      3. movi write {fwbl1 | u-boot | kernel} {addr} - Write data to sd/mmc
      4. movi read rootfs {addr} [bytes(hex)] - Read rootfs data from sd/mmc by size
      5. movi write rootfs {addr} [bytes(hex)] - Write rootfs data to sd/mmc by size
      6. movi read {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc read"
      7. movi write {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc write"

          fwbl1 | u-boot | kernel 指三个分区。fwbl1是 uboot 的一部分,这个在 S5PV210的启动过程可以看到!

          addr 指内存地址。

      具体擦除inand 的 uboot  指令一:movi write u-boot 0x30000000

      解释:把内存地址为0x30000000的数据写到u-boot 扇区里。

     使用 uboot 指令 清除 通道0 的 uboot,重点 来了,重启 没有出现 SD 信息 校验 出错,  开发板变砖了,DNW 刷机。再来!………………2017年3月19日22:49:21

    用 USB 在Linux下 用dnw 刷uboot 到内存中,然后进入uboot命令行下,然后输入fastboot指令进入fastboot模式,使用windows的fastboot

    工具,在CMD指令下 使用 fastboot 命令 刷uboot 到flash中,然后刷 kernel ,和system到 flash中,然后进入 Linux或者安卓下,使用

    busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync

    sync

    两个命令 进行 清除掉 通道0  的uboot,然后 在 shell 下就会出现

    SD checksum Error

    的字样,然后使用  x210_Fusing_Tool 工具 刷 uboot_inand.bin到SD卡中,这样 又可以 愉快的 启动 uboot了,这样 就可以 使用 fastboot 工具刷机了。。。。2017年3月24日18:05:48

    5、在 windows 下 制作 SD 卡启动,使用 软件 x210_Fusing_Tool.rar,

      1、把SD卡插到电脑上,2、打开x210_Fusing_Tool,就会看到已经识别SD卡,注意先后顺序。

         Browse 选择 uboot_inand.bin 的路径,点击 Add,然后 START,最后出现Fusing image done.

        

    6、这样 就可以 通过 SD 启动 UBOOT,然后进入 uboot ,输入fastboot指令进入fastboot状态,就可以使用fastboot 进行刷机了!2017年3月24日17:57:26

    参考链接:http://www.cnblogs.com/zou107/p/5054631.html

  • 相关阅读:
    php Windows系统 wamp集成环境下redis的使用
    IO流文件拷贝
    IO流框架
    Map集合
    泛型
    Deque(队列)
    List接口
    Iterator接口(迭代器)
    Java中的异常详解
    Java中的正则表达式
  • 原文地址:https://www.cnblogs.com/suozhang/p/6544931.html
Copyright © 2011-2022 走看看