请教一个stm32的USB的问题

2020-01-01 17:48发布

程序从0x08000000地址开始运行的话,没问题
自己做了个U盘升级程序,就是把单片机模拟成U盘,应用部分从0x08003800开始运行,当运行到USB配置时,单片机就会卡死。

分析反汇编代码,应该是进入了一个死循环。0x0800011A E7FE      B        0x0800011A值 ; @0x080000FC


请教各位,这是什么原因。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
cumthe
1楼-- · 2020-01-01 21:28
U盘升级程序没有问题。应用部分单独用也没有问题,把两者合在一起就出现问题了。
cumthe
2楼-- · 2020-01-02 01:55
 精彩回答 2  元偷偷看……
leafstamen
3楼-- · 2020-01-02 04:24
中断入口没有重新设置。
cumthe
4楼-- · 2020-01-02 04:57
leafstamen 发表于 2016-8-3 15:55
中断入口没有重新设置。

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3800);
指的是这个吗?已经有了
leafstamen
5楼-- · 2020-01-02 06:58
程序在0x08003800开始,结果执行到了比开始位置还小的0x0800011A,你可以试一下是不是一有中断产生就出现你说的那个现象,如果是的话就是中断入口的问题。
lidai0302
6楼-- · 2020-01-02 09:34
在跳转之前需要把中断都关掉,还有Boot里面用到的硬件外设要恢复到复位时的状态,这样才能保证和你分开运行时硬件环境一样。

一周热门 更多>