STM32/STM8技术论坛
直播中

陈敏

7年用户 1282经验值
私信 关注
[问答]

加入IAP后u*** device连接电脑时出现硬件异常

请教大家,当前现象是:

1、IAP中使用了u*** host,应用程序中使用了u*** device,作为U盘使用,启动后,IAP中使用USB没问题,但是应用程序连接电脑时出现硬件异常

2、如果不加入IAP,应用程序USB 作为U盘连接电脑没有任何问题。

请问哪位大神遇到过类似的情况,指点一下,谢谢!~

回帖(10)

李悛

2019-1-28 07:33:30
应该是IAP的部分中断还在运行。
不进IAP(比如通过不按按键)直接进APP有问题吗?
举报

陈敏

2019-1-28 07:39:02
引用: 7762642422d 发表于 2019-1-28 09:59
应该是IAP的部分中断还在运行。
不进IAP(比如通过不按按键)直接进APP有问题吗?

谢谢回复,
通过按按键直接进入还没有试过,但是在APP中我已经将中断向量表重新初始化了!~~~

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0);
举报

李悛

2019-1-28 07:50:20
引用: rstech_rd 发表于 2019-1-28 10:04
谢谢回复,
通过按按键直接进入还没有试过,但是在APP中我已经将中断向量表重新初始化了!~~~

不进IAP直接进入用户APP没试过?那你的程序每次上电都要先更新固件?
还是我的理解有问题?!
把在IAP里面用到的所有的中断、外设都关闭!只重定向中断向量表是不够的。
注意是用到的关闭。如果上电根本就没进入IAP的实质阶段就不用关闭(正确情况下都还没执行到开),你不会在IAP里面一上来就初始化用到的外设和中断吧!
举报

李家沌

2019-1-28 08:03:48
IAP开始切换前关闭所有中断,进入APP后再开启中断
举报

孙婷婷

2019-1-28 08:16:52
APP的中断向量进行设置了吗?
举报

陈敏

2019-1-28 08:33:05
引用: 7762642422d 发表于 2019-1-28 10:16
不进IAP直接进入用户APP没试过?那你的程序每次上电都要先更新固件?
还是我的理解有问题?!
把在IAP里面用到的所有的中断、外设都关闭!只重定向中断向量表是不够的。

我板子上电后,先进入IAP,如果没有升级或者其他需要在IAP里面的任务,就直接跳转到APP了。
IAP里面只有IAP里面用的外设进行初始化,APP里面也是用的外设进行初始化。不过USB这部分,确实是IAP和APP中使用的功能不同,因为用的105系列的,u***是OTG的,但是我这边现在是APP运行很长一段时间了,都确保了APP的u***都初始化了,那按您的意思,这里面的u***初始化的中断还是IAP里面HOST的?
举报

陈敏

2019-1-28 08:46:34
引用: testd018 发表于 2019-1-28 10:29
IAP开始切换前关闭所有中断,进入APP后再开启中断

谢谢回复,

当前是进入APP后,运行随便多长时间,只要连接电脑,就出现硬件异常。app里面肯定是对USB重新初始化的
举报

陈敏

2019-1-28 09:05:47
引用: TOPCB 发表于 2019-1-28 10:42
APP的中断向量进行设置了吗?

谢谢回复,已经设置过了!!~
举报

孙婷婷

2019-1-28 09:12:19
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0);
我们一般设置向量列表的位置如下,后面的地址是APP的起始地址-0x08000000:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);
举报

陈敏

2019-1-28 09:26:41
引用: 7762642422d 发表于 2019-1-28 10:16
不进IAP直接进入用户APP没试过?那你的程序每次上电都要先更新固件?
还是我的理解有问题?!
把在IAP里面用到的所有的中断、外设都关闭!只重定向中断向量表是不够的。

试过了把中断关了也不行,
刚把IAP的u***给注销了,但是跳入APP后还是有类似问题,会不会是内存哪里出问题了?
但是为何不加IAP就可以呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分