佚名通过本文主要向大家介绍了stm32f4 usb,stm32f4 usb hid,stm32f4 usb虚拟串口,stm32f4 usb通信,stm32f4 usb host等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何实现通过USB直接将程序下载进STM32F4
描述:
现在我需要实现的功能和ulink2的功能类似,就是能直接通过一个上位机,将程序下载进STM32F4芯片中。
现在我已经实现了将设备枚举成功,但是问题就来了(不是挖掘机技术哪家强....)。现在我卡在了是否需要编写驱动,和编写什么类型的驱动这一问题上。
因为看到ulink2是一个HID设备,直接使用的微软的HID驱动,那么是否我也可以直接使用微软提供的HID驱动,只需要编写一个上位机就可以实现我希望得功能?
希望各位大神能提供一点思路。
解决方案1:
描述:
微软stm32驱动
各位大神好!现在我需要实现的功能和ulink2的功能类似,就是能直接通过一个上位机,将程序下载进STM32F4芯片中。
现在我已经实现了将设备枚举成功,但是问题就来了(不是挖掘机技术哪家强....)。现在我卡在了是否需要编写驱动,和编写什么类型的驱动这一问题上。
因为看到ulink2是一个HID设备,直接使用的微软的HID驱动,那么是否我也可以直接使用微软提供的HID驱动,只需要编写一个上位机就可以实现我希望得功能?
希望各位大神能提供一点思路。
解决方案1:
可以参考ST提供STM32F4的dfu参考示例
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1897/PF259243#
STM32F4没有使用过,但是使用过其它类似的ARM芯片。说下知道的情况。
一般情况是下是支持JLINK ULINK之类的直接下载程序(或者叫固件/系统)到内存中,直接下载到FLASH中可以实现但是并不实际的一种方法,因为采用的FLASH也各有不同,很难统一实现一个下载固件到FLASH中的程序。
一般ARM芯片采用的是同时支持FLASH和SDCARD启动,会分好几步CPU内部会有内置的ROM和RAM实现第一步的运行,将FLASH或者SDCARD中的BOOTLOADER部分拷贝到RAM中运行,BOOTLOADER将自身拷贝到外置的RAM中,之后初始化必要的硬件跑其它主要的 程序(一般是系统)。这是最为常见的实现烧的方法。
所以说你的需求可以实现,但是不实用。因为相比以上常见的实现方法,比基于JLINK ULINK稳定性要强太多了。