【TINY4412】U-BOOT移植笔记:(15)DFU更新固件

【TINY4412】U-BOOT移植笔记:(15)DFU更新固件

宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64
目标板[底板]: Tiny4412SDK - 1506
目标板[核心板]: Tiny4412 - 1412
U-BOOT版本: 2017.03
交叉编译器: gcc-arm-none-eabi-5_4-2016q3
日期: 2017-6-12 21:23:32
作者: SY

简介

  • DFU全称Device Firmware Upgrade设备固件更新。

移植

  • Linux端

    1. 安装软件:apt-get install dfu-util
    2. 使用usb线将开发板与电脑端连接起来
  • 开发板端

    1. 使用 make menuconfig 配置打开dfu相关选项。
    2. 在.config中增加
CONFIG_CMD_DFU=y
# DFU support
CONFIG_USB_FUNCTION_DFU=y
# CONFIG_DFU_TFTP is not set
CONFIG_DFU_MMC=y
# CONFIG_DFU_NAND is not set
CONFIG_DFU_RAM=y
# CONFIG_DFU_SF is not set
可以使用MMC和RAM存储文件
3. 输入 setenv dfu_alt_info u-boot.bin ram 0x43E00000 0x100000
表示如果使用ram方式,将接收的数据存储在RAM中以0x43E00000开始的位置,最大为0x10000
表示如果使用mmc方式,将接收的数据存储在MMC中以0x10000000开始的位置,最大为0x10000

测试

>> 开发板
        TINY4412 # dfu 0 ram 0

        USB PHY0 Enable

        crq->brequest:0x0   

>> 电脑端
        root@ubuntu:/opt/u-boot-2017.03# dfu-util -D u-boot.bin
        dfu-util 0.8

        Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
        Copyright 2010-2014 Tormod Volden and Stefan Schmidt
        This program is Free Software and has ABSOLUTELY NO WARRANTY
        Please report bugs to dfu-util@lists.gnumonks.org

        dfu-util: Invalid DFU suffix signature
        dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
        Opening DFU capable USB device...
        ID 18d1:4e30
        Run-time device DFU version 0110
        Claiming USB DFU Interface...
        Setting Alternate Setting #0 ...
        Determining device status: state = dfuIDLE, status = 0
        dfuIDLE, continuing
        DFU mode device DFU version 0110
        Device returned transfer size 4096
        Copying data from PC to DFU device
        Download        [=========================] 100%       419666 bytes
        Download done.
        state(7) = dfuMANIFEST, status(0) = No error condition is present
        state(2) = dfuIDLE, status(0) = No error condition is present
        Done!
        root@ubuntu:/opt/u-boot-2017.03# 

>> 开发板
        #DOWNLOAD ... OK

        Ctrl+C to exit ...

        TINY4412 # go 0x43E00000
        U-Boot 2017.03-gda9faf9-dirty (Jun 12 2017 - 20:44:58 +0800) for TINY4412


​   
        CPU:   Exynos4412 @ 1.4 GHz

        Model: Tiny4412 based on Exynos4412

        Board: Tiny4412 based on Exynos4412

        DRAM:  1 GiB

        WARNING: Caches not enabled

        MMC:   SAMSUNG SDHCI: 0, EXYNOS DWMMC: 1

        Hit any key to stop autoboot:  0 

        SD/MMC found on device 0

        ** Invalid partition 1 **

        ** Invalid partition 1 **

        ** Invalid partition 1 **

        Wrong Image Format for bootm command

        ERROR: can't get kernel image!
  • 这样开发板变更新了U-BOOT。注意:0x43E00000是代码连接地址,#define CONFIG_SYS_TEXT_BASE 0x43E00000,不能随便将代码下载到其他内存地址,否则将导致开发板死机!
  • 原来更新U-BOOT都是通过先烧录到SD卡,然后选择SD卡启动的方式。效率低而且对SD卡寿命有影响,如果使用这种方式,只需要将待验证的代码下载到内存,即可快速验证!
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值