您的位置:首页 > 其它

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

2018-01-13 08:42 579 查看

【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端

安装软件:apt-get install dfu-util

使用usb线将开发板与电脑端连接起来

开发板端

使用 make menuconfig 配置打开dfu相关选项。

在.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卡寿命有影响,如果使用这种方式,只需要将待验证的代码下载到内存,即可快速验证!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: