奇怪:STM32F105修改SCB->VTOR后,USB死了

2019-03-23 17:42发布

Hi,
最近在做STM32F105测试,用的是STM官网下的USB HOST库,把带USB HOST驱动的应用程序中的VECT_TAB_OFFSET改成0x3000,程序就死在USBH_Init()函数里了,把VECT_TAB_OFFSET改回0或者把USB HOST的驱动屏蔽掉,就工作正常。很奇怪啊,请大侠们不吝赐教。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
strong161
1楼-- · 2019-03-23 22:08
 精彩回答 2  元偷偷看……
cruelfox
2楼-- · 2019-03-24 01:36
中断向量表你复制过去了吗? 查看0x3000处是啥?
xumeixiaoz
3楼-- · 2019-03-24 07:00
cruelfox 发表于 2017-4-17 14:56
中断向量表你复制过去了吗? 查看0x3000处是啥?

我只是重定位flash的入口地址为0x8003000,会影响到中断向量表吗?
  1. SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
复制代码
cruelfox
4楼-- · 2019-03-24 10:11
 精彩回答 2  元偷偷看……
xumeixiaoz
5楼-- · 2019-03-24 12:00
cruelfox 发表于 2017-4-17 16:26
那你的程序是怎么在Flash中排布的?

我主要是想实现UASRT-IAP的功能,flash的入口地址0x8000000开始是一个引导程序,满足条件就把程序跳转到0x8003000,0x8003000开始是应用程序。在STM32F103上是好实现的,但是在STM32F105上就是过不了USB HOST这一关,不知道哪里的问题呢
cruelfox
6楼-- · 2019-03-24 13:34
这个原理也没有问题。我建议用JTAG/SWD调试跟踪一下,看卡死在什么中断里了。

一周热门 更多>