DFU相关

[复制链接]
2986|18
 楼主| LOVE_ELEC 发表于 2013-1-15 16:31 | 显示全部楼层 |阅读模式
本帖最后由 LOVE_ELEC 于 2013-1-16 13:42 编辑

请问DFU的固件程序是不是可以下载到Flash的任何一个位置(空间大小足够),然后可以通过引导程序去加载该部分程序?
 楼主| LOVE_ELEC 发表于 2013-1-15 16:35 | 显示全部楼层
顺便请帮忙解释下DFU的模式切换的过程?
uet_cache 发表于 2013-1-15 16:36 | 显示全部楼层
是吧,只是此地址,在引导程序和应用程序中要保持一致。
 楼主| LOVE_ELEC 发表于 2013-1-15 16:40 | 显示全部楼层
可是我这样操作却发现不能加载!地址写的肯定是对的!后来试了下用 DFU 刷固件的方式下载这部分程序,可是根本刷不进去!是不是有冲突或者其他的什么原因呢?
uet_cache 发表于 2013-1-15 16:43 | 显示全部楼层
噢 你的应用程序起始位置不能与引导程序冲突。。,,另外,你 如何确定你的应用程序起始地址。。。
 楼主| LOVE_ELEC 发表于 2013-1-15 16:47 | 显示全部楼层
在生成.Hex文件时在程序的配置中设置的!我把地址改完后生成的.hex文件!与DFU中加载应用程序的地址相同!
 楼主| LOVE_ELEC 发表于 2013-1-15 16:48 | 显示全部楼层
然后利用软件将.hex文件转换为.dfu文件的!
uet_cache 发表于 2013-1-15 16:50 | 显示全部楼层
以前我试过,没有问题。只是两者地址保持一致。你应用程序可以做个最简单的灯闪,不加中断程序试试。。
 楼主| LOVE_ELEC 发表于 2013-1-15 17:01 | 显示全部楼层
不好意思!刚才是操作失误!操作的不是同一个程序!我试了下可行!我想问下就是DFU的两种运行模式的切换?比如是不是需要两种描述符?如何加载?
uet_cache 发表于 2013-1-15 17:02 | 显示全部楼层
官方是通过按键才实现的,你也可以通过 一个外来信号切换。。。
 楼主| LOVE_ELEC 发表于 2013-1-15 17:06 | 显示全部楼层
现在的思路是不用外部信号!我的想法是复位或上电时运行用户程序,当需要更新固件时通过指令来运行用户程序中的引导程序来加载 DFU 程序!不知是否可行?
 楼主| LOVE_ELEC 发表于 2013-1-15 17:12 | 显示全部楼层
我刚才试了下可以实现!还有一个问题就是对于 DFU 的模式切换的过程因为涉及到主机的驱动程序部分,所以想请帮忙理下思路?
uet_cache 发表于 2013-1-15 17:16 | 显示全部楼层
你可以在应用程序中受到指令后让系统复位。但需要一个中间传递信号。。。至于这中间传递信号很多方法,你自己定。。。
 楼主| LOVE_ELEC 发表于 2013-1-15 17:22 | 显示全部楼层
嗯!我想可不可以用 DFU 的两种模式的切换来实现!只是官方给的历程不知道是不是只给了 DFU 模式下的程序,而不支持 run-time模式?
 楼主| LOVE_ELEC 发表于 2013-1-15 18:19 | 显示全部楼层
本帖最后由 LOVE_ELEC 于 2013-1-15 18:31 编辑

现在通过自定义的指令可以将程序指引到 DFU 固件刷新程序部分,但是不能检测到 DFU 设备的存在,请问是什么原因?
 楼主| LOVE_ELEC 发表于 2013-1-16 12:33 | 显示全部楼层
本帖最后由 LOVE_ELEC 于 2013-1-16 13:44 编辑

现在利用软件断开可以实现但是有如下问题:
1>断开需要等待10秒钟左右是否正常?
2>采用此方法断开后如何重新连接?
我要实现的是在切换到 DFU 模式时主机能够进行对设备进行枚举,从而为 DFU模式加载驱动!
硬件加密芯片 发表于 2013-1-16 15:34 | 显示全部楼层
硬件加密芯片 发表于 2013-1-16 15:34 | 显示全部楼层
硬件加密芯片 发表于 2013-1-16 15:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:生命不息,奋斗不止!

21

主题

205

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部