搜索
bottom↓
回复: 106

STM32F4 USB HOST 实现 U盘 IAP

  [复制链接]

出0入270汤圆

发表于 2014-2-14 10:37:40 | 显示全部楼层 |阅读模式
本帖最后由 niu14789 于 2014-2-14 10:45 编辑

这个程序在是四个月前的一个项目上使用过的,今天整理电脑时发现了它,本着开源公享的精神把它贴出来

STM32F4 使用USBHOST实现的U盘IAP

    程序上电之后会判断是否有U盘插入,如果没有则直接跳转,如果有U盘插入,接着会判断是否存在ROM.bin文件,如果存在则进行IAP

IAP程序区占用地址为 0x08000000~0x08040000


对应的用户程序起始地址就得进行更改

需要将要更新的程序转换为BIN文件并改名的ROM.bin保存到U盘中才能进行IAP

KEIL 中 生成 BIN文件的命令为

Output/OTG.axf为工程成生axf文件的地址,生成的OTGROM.bin文件保存在工程根目录下

在用户程序中,在中断初始之前要加入以下代码才能保证中断会正确的被响应。

设置中断向量表偏移地址。

程序中跟LCD相关的都可以删掉。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-2-14 10:53:35 | 显示全部楼层
感谢楼主的无私精神!!!顶一下。

出0入54汤圆

发表于 2014-2-14 11:01:09 | 显示全部楼层
mark下,感谢

出0入0汤圆

发表于 2014-2-14 11:07:38 | 显示全部楼层
mark                     

出0入0汤圆

发表于 2014-2-14 11:12:02 | 显示全部楼层
40000这数值有点大啊,我用的是8000.
我根据discovery板子里面的那个例程修改的,效果一样。

出0入0汤圆

发表于 2014-2-14 11:23:02 | 显示全部楼层
mark,感谢分享

出0入0汤圆

发表于 2014-2-14 11:26:24 | 显示全部楼层
感谢分享

出0入17汤圆

发表于 2014-2-14 11:32:55 | 显示全部楼层
感谢楼主的无私精神!!!

出0入0汤圆

发表于 2014-2-14 12:26:53 | 显示全部楼层
感谢,很有实际意义的东西。   

试着编译了一下,有两个地方用汇编指令关中断    报error了。 可能是KEIL版本问题。
__asm("CPSID  I");  

error #1113: Inline assembler not permitted when generating Thumb code

出0入0汤圆

发表于 2014-2-14 12:51:36 | 显示全部楼层
谢谢分享!!

出0入0汤圆

发表于 2014-2-14 13:05:08 | 显示全部楼层
很好的資料,謝謝分享:)

出0入0汤圆

发表于 2014-2-14 13:13:54 | 显示全部楼层
好东西,收藏了,谢楼主分享

出0入0汤圆

发表于 2014-2-18 13:54:28 | 显示全部楼层
感谢楼主开源

出0入0汤圆

发表于 2014-2-22 10:30:04 | 显示全部楼层
XA144F 发表于 2014-2-14 11:12
40000这数值有点大啊,我用的是8000.
我根据discovery板子里面的那个例程修改的,效果一样。 ...

我想问一下您的stm32f407的usb例程在哪里找到的?可以共享一下吗?

出0入0汤圆

发表于 2014-2-22 16:30:26 | 显示全部楼层
xuexueaibeibei 发表于 2014-2-22 10:30
我想问一下您的stm32f407的usb例程在哪里找到的?可以共享一下吗?

就是discovery板子的例程:
STM32F4-Discovery_FW_V1.1.0\Project\FW_upgrade
参考的文档就是AN3990 Upgrading STM32F4DISCOVERY board firmware using a USB key

出0入0汤圆

发表于 2014-2-22 19:41:03 | 显示全部楼层
你好,我想问一下,你的u盘是通过什么硬件和stm32f4连接在一起的?你所说的usb host是一种芯片吗?像ch375这样的?

出0入0汤圆

发表于 2014-2-22 19:42:09 | 显示全部楼层
XA144F 发表于 2014-2-22 16:30
就是discovery板子的例程:
STM32F4-Discovery_FW_V1.1.0\Project\FW_upgrade
参考的文档就是AN3990 Upgr ...

我可以再问一个简单的问题吗?stm32f4discovery的例程怎么下载?

我找了好久都找不到

出0入0汤圆

发表于 2014-2-22 20:26:11 | 显示全部楼层
收藏一下并且顶下

出0入0汤圆

发表于 2014-3-5 09:55:01 | 显示全部楼层
等下研究下USB升级的例程

出0入0汤圆

发表于 2014-3-18 22:18:06 | 显示全部楼层
bootloader的升级逻辑如何实现?原来用DFU升级的时候,是判断
if (((*(__IO uint32_t*)APP_DEFAULT_ADD) & 0x2FFE0000 ) == 0x20000000)  切换的。

用U盘升级还是这样吗?
我看了一下生成的二进制文件,开头的文件根本不是0x2000,而是  2A0E,这样就不符合切换逻辑了啊。这样写进去后,直接导致进入硬件错误中断。

出0入0汤圆

发表于 2014-3-31 15:26:48 | 显示全部楼层
正需要,先收藏。鸣谢!

出0入0汤圆

发表于 2014-5-5 16:55:48 | 显示全部楼层
收藏 顶起

出0入0汤圆

发表于 2014-5-6 09:42:22 | 显示全部楼层
感谢楼主无私精神!!!

出0入0汤圆

发表于 2014-5-19 15:02:49 | 显示全部楼层
求助    U盘容量超过4G就不识别了,怎么处理呢?
我从ST上下的429的DISCOVERY资料,里面的FW_upgrade搬出来到我的板子上。
工程里面带的USB库是  * @version V2.1.0    * @date    19-March-2012  版本的。
usbh_msc_scsi.c  里定义的变量 USBH_MSC_Param.MSCapacity 是个 uint32_t 型的,也就是最大只能到4G字节。
连接上8G的U盘就不能正常运行了。

出0入0汤圆

发表于 2014-5-19 21:25:55 | 显示全部楼层
标记一下。

出0入0汤圆

发表于 2014-8-2 12:41:46 | 显示全部楼层
mark 收藏

出0入0汤圆

发表于 2014-8-2 18:58:52 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-8-19 10:29:49 | 显示全部楼层
谢谢分享,非常有用。

出0入0汤圆

发表于 2014-8-30 22:08:39 | 显示全部楼层
XA144F 发表于 2014-2-14 11:12
40000这数值有点大啊,我用的是8000.
我根据discovery板子里面的那个例程修改的,效果一样。 ...

你好,能否发给我共享一下啊 ??

我的usb u盘 Iap 始终都没有成功,单片机也是使用stm32f407vet6 的,最大flash空间0x80000

出0入0汤圆

发表于 2014-8-31 12:08:38 | 显示全部楼层
hpdell 发表于 2014-8-30 22:08
你好,能否发给我共享一下啊 ??

我的usb u盘 Iap 始终都没有成功,单片机也是使用stm32f407vet6 的, ...

我上传一个F405的u盘升级吧,这和F407的一样——我就是从F407移植过去的。
要烧写的用户程序需要fromelf转换为bin文件,文件名image.bin。
用户程序开始地址需要加上便宜0x8000,中断向量表开始地址也要改成0x8000.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-1 21:07:11 | 显示全部楼层
XA144F 发表于 2014-8-31 12:08
我上传一个F405的u盘升级吧,这和F407的一样——我就是从F407移植过去的。
要烧写的用户程序需要fromelf ...

非常感谢感谢啊!!!

出0入0汤圆

发表于 2014-9-1 21:13:59 | 显示全部楼层
收藏了,这个是涨姿势!

出0入0汤圆

发表于 2014-9-2 13:19:26 | 显示全部楼层
谢楼主的无私精神!!!顶一下。

出0入0汤圆

发表于 2014-9-16 21:24:27 | 显示全部楼层
好资料,现在才看到希望不晚!

出0入0汤圆

发表于 2014-9-17 15:33:10 | 显示全部楼层
MARK                           

出0入0汤圆

发表于 2014-9-17 16:01:46 | 显示全部楼层
串口1000飘过

出0入0汤圆

发表于 2014-9-17 16:03:56 | 显示全部楼层
谢楼主的无私精神!!
学习了

出0入0汤圆

发表于 2014-9-17 16:12:20 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-10-27 15:16:40 | 显示全部楼层
非常感谢分享,最近在弄STM32F407 ,下来学习下

出0入0汤圆

发表于 2014-10-27 15:48:08 | 显示全部楼层
不错,正好需要

出0入0汤圆

发表于 2014-10-27 15:54:32 | 显示全部楼层
感谢楼主的分享.谢谢

出0入0汤圆

发表于 2014-10-28 13:49:02 | 显示全部楼层
好东西,顶...

出0入0汤圆

发表于 2014-11-14 11:37:35 | 显示全部楼层
好东西,支持楼主!!!!!

出0入0汤圆

发表于 2014-11-14 11:38:35 | 显示全部楼层
收了,我正在搞SD卡IAP升级,有用的到!

出0入0汤圆

发表于 2014-11-14 12:04:31 | 显示全部楼层
感谢楼主!

出0入0汤圆

发表于 2014-11-14 12:08:12 | 显示全部楼层
mark 以后可以用到

出0入0汤圆

发表于 2014-11-14 12:15:23 | 显示全部楼层
mark,

出0入0汤圆

发表于 2014-11-17 09:02:13 | 显示全部楼层
U盘的话,传输速度有多快

出0入8汤圆

发表于 2014-11-17 09:23:48 | 显示全部楼层
试一下在别的芯片可以不~

出0入0汤圆

发表于 2015-1-7 11:40:47 | 显示全部楼层
谢谢楼主无私奉献!

出0入0汤圆

发表于 2015-1-7 12:01:47 | 显示全部楼层
谢谢楼主分享  

出0入0汤圆

发表于 2015-1-7 16:27:17 | 显示全部楼层
正想做这个,膜拜

出0入0汤圆

发表于 2015-1-7 17:14:37 | 显示全部楼层
先收藏下,回头试试,以前是用SD卡做的。

出0入0汤圆

发表于 2015-1-7 17:18:59 | 显示全部楼层
mark下,以后用得到

出0入0汤圆

发表于 2015-1-8 09:41:55 | 显示全部楼层
good staff

出0入0汤圆

发表于 2015-1-31 20:37:30 | 显示全部楼层
谢谢楼主!!!!

出0入0汤圆

发表于 2015-4-1 09:17:06 | 显示全部楼层
感谢楼主         

出0入53汤圆

发表于 2015-4-27 10:58:25 | 显示全部楼层
请问lz做过通过互联网对muc进行IAP升级?

出0入0汤圆

发表于 2015-7-20 13:21:09 | 显示全部楼层
我盯着楼主的头像,笑了半天。。。。

出0入0汤圆

发表于 2015-7-20 13:54:26 | 显示全部楼层
不知stm32f103可以用usb实现IAP吗

出0入270汤圆

 楼主| 发表于 2015-7-20 14:00:33 | 显示全部楼层
随风允诺2015 发表于 2015-7-20 13:21
我盯着楼主的头像,笑了半天。。。。

                    

出0入0汤圆

发表于 2015-7-20 16:13:52 | 显示全部楼层
能支持长文件名吗

出0入0汤圆

发表于 2015-7-22 10:22:37 | 显示全部楼层
XA144F 发表于 2014-8-31 12:08
我上传一个F405的u盘升级吧,这和F407的一样——我就是从F407移植过去的。
要烧写的用户程序需要fromelf ...

你好,谢谢你的分享,能否把原理图纸也分享一下,最近在研究这么方便

出0入0汤圆

发表于 2015-7-22 11:14:43 | 显示全部楼层
那么好的东西先收藏了。

出0入0汤圆

发表于 2015-7-22 11:32:08 | 显示全部楼层
好资料收藏了。

出0入0汤圆

发表于 2015-7-22 13:30:19 | 显示全部楼层
感谢楼主的无私精神!!!  我想问 F103系列可以用 USB   IAP 吗

出0入270汤圆

 楼主| 发表于 2015-7-22 14:18:09 | 显示全部楼层
dswkl11 发表于 2015-7-22 13:30
感谢楼主的无私精神!!!  我想问 F103系列可以用 USB   IAP 吗

103 只支持USB Device 不能读U盘的 107可以

出0入0汤圆

发表于 2015-7-22 16:06:52 | 显示全部楼层
这个好牛啊!mark!!

出0入0汤圆

发表于 2015-7-22 22:09:09 | 显示全部楼层
mark,感谢分享

出0入0汤圆

发表于 2015-7-23 09:44:30 | 显示全部楼层
能详细说明一下中断向量是如何重定向的吗?我写了一个使用systick_handler终端的LED闪烁程序进行IAP测试,发现无法进入systick_handler中断...

出0入270汤圆

 楼主| 发表于 2015-7-23 18:16:59 | 显示全部楼层
andrewchen 发表于 2015-7-23 09:44
能详细说明一下中断向量是如何重定向的吗?我写了一个使用systick_handler终端的LED闪烁程序进行IAP测试, ...

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x40000);

出0入0汤圆

发表于 2015-7-24 10:59:45 | 显示全部楼层
这个IAP程序确实占用有点大。

出0入0汤圆

发表于 2015-7-24 13:02:21 | 显示全部楼层
niu14789 发表于 2015-7-22 14:18
103 只支持USB Device 不能读U盘的 107可以

我的意思是 把stmf103当做u盘,直接把bin文件拖拉进U盘,不知这样可以更新不,这样多方便啊

出0入0汤圆

发表于 2015-7-24 18:42:02 | 显示全部楼层
顶一下………………

出0入0汤圆

发表于 2015-7-24 20:44:03 | 显示全部楼层
谢谢分享

出0入270汤圆

 楼主| 发表于 2015-7-25 18:22:24 | 显示全部楼层
dswkl11 发表于 2015-7-24 13:02
我的意思是 把stmf103当做u盘,直接把bin文件拖拉进U盘,不知这样可以更新不,这样多方便啊 ...

完全可以的

出0入0汤圆

发表于 2015-8-26 14:46:49 | 显示全部楼层
楼主你好 有对应于这个USB HOST IAP 的电路图么?谢谢!

出0入0汤圆

发表于 2015-10-21 10:52:30 | 显示全部楼层
jsszdfdn 发表于 2015-8-26 14:46
楼主你好 有对应于这个USB HOST IAP 的电路图么?谢谢!

usb 引脚貌似就两个引脚,对着程序看看是定义的那两个引脚就可以了啊

出0入0汤圆

发表于 2015-10-21 15:28:10 | 显示全部楼层
M4的芯片开始流行起来了

出0入0汤圆

发表于 2015-10-21 15:34:50 | 显示全部楼层
mark 楼主很赞

出0入0汤圆

发表于 2016-1-22 15:21:48 | 显示全部楼层
MARK! 正好用到!

出0入0汤圆

发表于 2016-1-23 08:20:14 | 显示全部楼层
很好,就是怎么下载不了。。。

出0入4汤圆

发表于 2016-1-23 09:09:11 | 显示全部楼层
收藏      

出0入0汤圆

发表于 2016-5-30 17:38:32 | 显示全部楼层
多谢楼主,早就想搞这个功能了。

出0入0汤圆

发表于 2016-6-2 11:00:27 | 显示全部楼层
mark 以後可以用到 U盤 iap

出0入0汤圆

发表于 2016-9-14 00:09:32 | 显示全部楼层
楼主U盘实现IAP功能吗

出0入0汤圆

发表于 2016-9-14 08:50:08 | 显示全部楼层
XA144F 发表于 2014-2-14 11:12
40000这数值有点大啊,我用的是8000.
我根据discovery板子里面的那个例程修改的,效果一样。 ...

真的?
有空得去找一下这个例程。谢谢提示

出0入0汤圆

发表于 2016-9-14 12:51:14 | 显示全部楼层
STM32F4 USB HOST 实现 U盘 IAP  mark

出0入8汤圆

发表于 2017-7-14 22:28:44 来自手机 | 显示全部楼层
试试,u盘超过4G的可以吗?

出0入0汤圆

发表于 2017-7-27 10:52:33 | 显示全部楼层
上面的U盘不能超过4G,有没有可以识别4G 以上的?麻烦请分享下,谢谢!

出0入85汤圆

发表于 2017-7-27 15:36:55 | 显示全部楼层
谢谢楼主,慢慢学习!

出0入0汤圆

发表于 2017-11-22 15:49:02 | 显示全部楼层
感谢无私分享!!

出0入0汤圆

发表于 2017-11-22 16:10:08 | 显示全部楼层
谢谢分享,做过USB升级,U盘的还没玩过。

出0入0汤圆

发表于 2017-11-23 15:59:39 | 显示全部楼层
下载了 谢谢

出0入0汤圆

发表于 2017-11-23 17:37:54 | 显示全部楼层
瞅瞅

出0入13汤圆

发表于 2017-11-23 23:51:53 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2018-10-26 14:19:55 | 显示全部楼层
XA144F 发表于 2014-8-31 12:08
我上传一个F405的u盘升级吧,这和F407的一样——我就是从F407移植过去的。
要烧写的用户程序需要fromelf ...

编译了不能用了,有错误,等会自己改下~

出0入0汤圆

发表于 2018-10-26 16:58:25 | 显示全部楼层
mark  stm32 usb host

出0入0汤圆

发表于 2019-1-11 11:34:31 | 显示全部楼层
XA144F 发表于 2014-8-31 12:08
我上传一个F405的u盘升级吧,这和F407的一样——我就是从F407移植过去的。
要烧写的用户程序需要fromelf ...

谢谢  分享  学习一下

出0入0汤圆

发表于 2019-1-20 10:11:36 | 显示全部楼层
谢谢楼主,慢慢学习!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 20:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表