【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卡寿命有影响,如果使用这种方式,只需要将待验证的代码下载到内存,即可快速验证!
相关文章推荐
- 【TINY4412】U-BOOT移植笔记:(19)TFTP更新固件
- 【TINY4412】U-BOOT移植笔记:(17)BOOTP更新固件
- 【TINY4412】U-BOOT移植笔记:(1)移植前准备
- 【TINY4412】U-BOOT移植笔记:(2)拷贝模板
- 【TINY4412】U-BOOT移植笔记:(3)点灯
- U-Boot-2009-03移植笔记(目录:持续更新)
- 【TINY4412】U-BOOT移植笔记:(4)U-BOOT执行流程
- 【TINY4412】U-BOOT移植笔记:(5)时钟分析
- 【TINY4412】U-BOOT移植笔记:(6)串口驱动
- 【TINY4412】U-BOOT移植笔记:(11)LED驱动
- 【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
- 【TINY4412】U-BOOT移植笔记:(12)BEEP驱动
- 【TINY4412】U-BOOT移植笔记:(8)SD卡驱动
- 【TINY4412】U-BOOT移植笔记:(13)USB驱动
- 【TINY4412】U-BOOT移植笔记:(9)SD卡启动U-BOOT
- 【TINY4412】U-BOOT移植笔记:(14)USB-OTG驱动
- 【TINY4412】U-BOOT移植笔记:(10)EMMC驱动
- 【TINY4412】U-BOOT移植笔记:(16)DM9621驱动
- 【TINY4412】LINUX移植笔记:(15)SD卡启动Linux内核
- Zynq-Linux移植学习笔记之15-用户APP直接访问PL物理地址