当前位置: 代码迷 >> 单片机 >> 如何通过usb直接将程序下载到stm32f407
  详细解决方案

如何通过usb直接将程序下载到stm32f407

热度:153   发布时间:2016-04-28 14:57:07.0
怎么通过usb直接将程序下载到stm32f407?
现在的程序是用ULINK下载进去的
不过老师要求直接用usb将程序要求直接下载到芯片里。
希望各位大神能提供一些思路,在下不甚感激。
------解决方案--------------------
难道你们老师是想让你们学习bootloader?
------解决方案--------------------
引用:
Quote: 引用:

难道你们老师是想让你们学习bootloader?
我在st的官方网站上下载了DfuSe,它的使用步骤中有:用Jlink之类的东西把这个hex的bootloader刷进stm32的内部flash,请问这个bootloader是自己编写的吗?

是的,相当于一个新工程, 工作流程是开机bootloader启动,如果检测到需要烧写程序则把从USB接收到的数据写入aprom中
------解决方案--------------------
那就是要做一个bootloader带usb支持的。应该有demo工程可以用吧
------解决方案--------------------
个人感觉升级无非就是把存放APP的Flash的地方擦除,然后再把新的程序擦写到那块 区域里面。至于利用USB,(在0x0800 0000)设置一个升级程序,改程序可以实现USB HID功能,然后可以利用USB HID通信(可以自己做个上位机,应该很简单,自己定一些协议)从上位机把bin文件发送给下位机,然后擦除掉存放APP的Flash区,并把APP的bin文件写入到Flash区域,完毕以后,可调到APP运行即可
------解决方案--------------------
引用:
Quote: 引用:

个人感觉升级无非就是把存放APP的Flash的地方擦除,然后再把新的程序擦写到那块 区域里面。至于利用USB,(在0x0800 0000)设置一个升级程序,改程序可以实现USB HID功能,然后可以利用USB HID通信(可以自己做个上位机,应该很简单,自己定一些协议)从上位机把bin文件发送给下位机,然后擦除掉存放APP的Flash区,并把APP的bin文件写入到Flash区域,完毕以后,可调到APP运行即可
请问ST公司有没有stm32f407 usb bootloader的源代码呢?我找了半天就找到一个DfuSe


这个我就不知道了。
------解决方案--------------------
引用:
Quote: 引用:

个人感觉升级无非就是把存放APP的Flash的地方擦除,然后再把新的程序擦写到那块 区域里面。至于利用USB,(在0x0800 0000)设置一个升级程序,改程序可以实现USB HID功能,然后可以利用USB HID通信(可以自己做个上位机,应该很简单,自己定一些协议)从上位机把bin文件发送给下位机,然后擦除掉存放APP的Flash区,并把APP的bin文件写入到Flash区域,完毕以后,可调到APP运行即可
请问ST公司有没有stm32f407 usb bootloader的源代码呢?我找了半天就找到一个DfuSe


用MDK4.20或以下版本,在安装后到这里:
安装目录\ARM\Examples\ST\STM32F10xUSBLib\Demos\Device_Firmware_Upgrade
可以找到USB DFU的固件范例。当然这个是F1系列的。你用F4系列只需要移植即可。ST没必要为每个系列都出一套范例。
这套固件就是配合DFUSe使用的。

提醒一下,如果你要做产品,想更改DFU模式下的VID、PID或者Windows设备管理器中的显示名称,那么你得透过ST指定的代理申请一个证书。ST好像有个算号器可以根据你的VID、PID算出一串16进制码。更新固件里的VID、PID信息,同时把这些信息按照一定方式加到Windows驱动的INF文件里才能使用。
------解决方案--------------------
引用:
Quote: 引用:

个人感觉升级无非就是把存放APP的Flash的地方擦除,然后再把新的程序擦写到那块 区域里面。至于利用USB,(在0x0800 0000)设置一个升级程序,改程序可以实现USB HID功能,然后可以利用USB HID通信(可以自己做个上位机,应该很简单,自己定一些协议)从上位机把bin文件发送给下位机,然后擦除掉存放APP的Flash区,并把APP的bin文件写入到Flash区域,完毕以后,可调到APP运行即可
请问ST公司有没有stm32f407 usb bootloader的源代码呢?我找了半天就找到一个DfuSe


另:
MDK4.35以上好像剥离了自带的库,这时候需要你需要下载F1系列USB标准固件库(你不知道我为了在官网找这个地址掉了多少斤肉,妈蛋ST官网能不能再凌乱一点) http://stm32.eeelec.com/zip/stm32_usb-fs-device_lib.zip

可能还用得上UM0121STM32F105/7, STM32F2 and STM32F4 USB on-the-go Host and device library

UM0412DfuSe USB device firmware upgrade STMicroelectronics extension: contains the demo GUI, debugging GUI, all sources files and the protocol layer