OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11863|回复: 24

STM32-F407---USB-IAP升级问题

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
发表于 2018-3-19 20:54:22 | 显示全部楼层 |阅读模式
3金钱
开发板为STM32F4系列的:
最近一直在搞关于USB-IAP升级实验:U盘中含有需要升级的BIN文件。每次开机的时候,通过定时器去判断 是否有U盘挂载并且是否有需要升级的bin文件。
本身的工程是移植一个关于U盘读写的工程。此工程包含了FAT32文件系统,和内存管理函数。主要就是做U盘内固定bin文件的读取,以及flash相关的操作;
IAP升级主要参考原子哥的串口IAP升级思路。工程啥的都移植好了。bin文件啥的都是没问题的。
有一个很奇怪的现象:如果在跳转到IAP之前没有【__disable_irq()】这句,怎么跳转程序都不能执行,添加了这句之后大部分的程序,跳转之后是可以运行的。
但是也有写程序跳转之后就是不运行。也有人会问是不是写入到flash的数据是不是出错了,我尝试在跳转之前把flash中的数据全部读出来,然后通过某个小软件查看bin文件的数据
两者是一样的,没什么不同,现在的问题就是,某个UCOS程序能执行,某些却不行。lwip的程序是都不行。不知道是不是这个malloc导致的?????各位大神给提点思路。

最佳答案

查看完整内容[请看2#楼]

很可能是中断冲突。 你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置合适,APP又没有做禁用,那么IAP设置好的中断,还是会执行。但是到APP里面,根本就没有对应中断服务函数了,自然必死无疑。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-3-19 20:54:23 | 显示全部楼层
很可能是中断冲突。  你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置合适,APP又没有做禁用,那么IAP设置好的中断,还是会执行。但是到APP里面,根本就没有对应中断服务函数了,自然必死无疑。
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
 楼主| 发表于 2018-3-20 08:18:57 | 显示全部楼层
本帖最后由 小c小c 于 2018-3-20 08:21 编辑
正点原子 发表于 2018-3-19 20:54
很可能是中断冲突。  你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置 ...

主函数截图

主函数截图

原子哥:我也仔细的查看了一下,IAP的源码,在主函数中,我也就只有初始化了串口与USB,其他啥也没做,中断就只有串口中断与USB OTG这两个中断。难道是跳转需要关闭USB-OTG的相关处理?  USB升级跳转都是自动的,跳转之后肯定不会立即去除U盘,但是在APP程序中,没有初始化USB,可能U盘中断依然在运行,就导致了程序跳转之后不运行???
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
 楼主| 发表于 2018-3-20 19:18:11 | 显示全部楼层
各位老铁:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1的相关配置,然后在APP中同样也有串口1的配置,每次执行完printf就停止了,啥都没有了,如果换成串口2就没有问题。目前还在查找为什么两个地方都有串口1的配置,都使用printf函数,就会导致程序起不来。不知群里哪位大神知道。
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
 楼主| 发表于 2018-3-20 19:19:21 | 显示全部楼层
正点原子 发表于 2018-3-19 20:54
很可能是中断冲突。  你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置 ...

原子哥:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1的相关配置,然后在APP中同样也有串口1的配置,每次执行完printf就停止了,啥都没有了,如果换成串口2就没有问题。目前还在查找为什么两个地方都有串口1的配置,都使用printf函数,就会导致程序起不来。不知群里哪位大神知道。   这两者难道是中断问题导致的么?
回复

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-23 17:49:07 | 显示全部楼层
小c小c 发表于 2018-3-20 19:19
原子哥:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1 ...

有源码吗?
Loto虚拟示波器 官方qq群: 706769836 https://shop296209296.taobao.com/shop/view_shop.htm?tracelog=t
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
 楼主| 发表于 2018-3-24 17:43:58 | 显示全部楼层

有的!很简单的工程 ,找个U盘读写工程,把写flsah部分添加进去 ,参考原子哥的串口IAP流程即可
回复

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-3-26 08:48:46 | 显示全部楼层
小c小c 发表于 2018-3-24 17:43
有的!很简单的工程 ,找个U盘读写工程,把写flsah部分添加进去 ,参考原子哥的串口IAP流程即可

2906905479@qq.com 发你的学习一下
Loto虚拟示波器 官方qq群: 706769836 https://shop296209296.taobao.com/shop/view_shop.htm?tracelog=t
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-3-19
在线时间
6 小时
 楼主| 发表于 2018-3-29 18:14:10 | 显示全部楼层
秋天 发表于 2018-3-26 08:48
发你的学习一下

恩恩
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-4-20
在线时间
5 小时
发表于 2018-4-20 16:23:46 | 显示全部楼层
楼主,我的U盘工程参考正点原子哥的源码,但是不接U盘都直接跳转到HOST_DEV_ATTACHED,最后停留在 HOST_CTRL_XFER这状态,很想拿楼主的源码来参考参考,困惑两天,资料改看得都看了~~~~  qq邮箱:439599045@qq.com,万分感谢
回复

使用道具 举报

8

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2012-4-18
在线时间
76 小时
发表于 2018-6-13 22:13:14 | 显示全部楼层
小c小c 发表于 2018-3-20 19:19
原子哥:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1 ...

兄弟,最近我也在学习U盘IAP,求一份源码参考下,谢谢!
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
发表于 2018-6-15 09:31:46 | 显示全部楼层
USB-OTG好像要特殊处理,你百度一下,我记得以前看过这样的文章。也是影响跳转后的中断问题。
回复

使用道具 举报

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-5-8
在线时间
24 小时
发表于 2019-5-15 11:48:14 | 显示全部楼层
您好,最近也在做USB IAP的项目,目前一头雾水,能分享一下源码学习吗,感谢
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-6-28
在线时间
2 小时
发表于 2019-7-16 16:44:41 | 显示全部楼层
楼主,最近也在看u盘升级方案,您能否讲代码发送一份,万分感谢。邮箱为zhangtiang2008@163.com
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-7-23
在线时间
13 小时
发表于 2019-8-8 23:21:51 | 显示全部楼层
楼主能发一下源代码吗
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-7-23
在线时间
13 小时
发表于 2019-8-8 23:22:47 | 显示全部楼层
小c小c 发表于 2018-3-20 19:18
各位老铁:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1 ...

可以发下源代码吗?
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-7-23
在线时间
13 小时
发表于 2019-8-8 23:24:06 | 显示全部楼层

1580597954@qq.com   发一下源代码学习一下呗
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2019-4-14
在线时间
27 小时
发表于 2019-8-16 13:46:43 | 显示全部楼层
建议源码贴上
回复

使用道具 举报

60

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
478
金钱
478
注册时间
2017-11-22
在线时间
136 小时
发表于 2019-8-16 16:27:25 | 显示全部楼层
刚做了以太网IAP
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-4-28
在线时间
7 小时
发表于 2019-8-23 14:36:24 | 显示全部楼层
能发下源码学习下吗?15670278553@163.com
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-5-19
在线时间
2 小时
发表于 2019-11-12 20:43:35 | 显示全部楼层
2722869320@qq.com       楼主求源码学习一下,不胜感激!!!!!
回复

使用道具 举报

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2019-2-27
在线时间
12 小时
发表于 2019-11-13 09:08:08 | 显示全部楼层
能发一份源码吗,945551938@qq.com
回复

使用道具 举报

0

主题

44

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1905
金钱
1905
注册时间
2019-12-4
在线时间
259 小时
发表于 2019-12-11 10:03:50 | 显示全部楼层
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈哈哈哈哈
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-10-27
在线时间
24 小时
发表于 2020-11-17 09:13:37 | 显示全部楼层
正点原子 发表于 2018-3-19 20:54
很可能是中断冲突。  你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置 ...

原子哥,我也遇到了这个问题,你说的这个问题该怎么解决?
回复

使用道具 举报

0

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2020-7-30
在线时间
50 小时
发表于 2020-12-1 22:50:30 | 显示全部楼层
刚遇到,在找问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 00:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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