OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 1723|回复: 11

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里面,根本就没有对应中断服务函数了,自然必死无疑。
回复

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
134866
金钱
134866
注册时间
2010-12-1
在线时间
1319 小时
发表于 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函数,就会导致程序起不来。不知群里哪位大神知道。   这两者难道是中断问题导致的么?
回复

使用道具 举报

  离线 

12

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

有源码吗?
专业虚拟示波器批发零售(qq:2906905479)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流程即可
回复

使用道具 举报

  离线 

12

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

2906905479@qq.com 发你的学习一下
专业虚拟示波器批发零售(qq:2906905479)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

精华

新手入门

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

使用道具 举报

  离线 

7

主题

34

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

  离线 

11

主题

53

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-19 19:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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