社区导航

 
查看: 279|回复: 6

[求助] 奇怪:STM32F105修改SCB->VTOR后,USB死了

[复制链接]

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-4-17 14:51:04 | 显示全部楼层 |阅读模式
Hi,
最近在做STM32F105测试,用的是STM官网下的USB HOST库,把带USB HOST驱动的应用程序中的VECT_TAB_OFFSET改成0x3000,程序就死在USBH_Init()函数里了,把VECT_TAB_OFFSET改回0或者把USB HOST的驱动屏蔽掉,就工作正常。很奇怪啊,请大侠们不吝赐教。

回复

使用道具 举报

1467

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-4-17 14:54:12 | 显示全部楼层
友情帮顶,没有玩过USB

回复 支持 反对

使用道具 举报

583

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-4-17 14:56:40 | 显示全部楼层
中断向量表你复制过去了吗? 查看0x3000处是啥?

点评

我只是重定位flash的入口地址为0x8003000,会影响到中断向量表吗?  详情 回复 发表于 2017-4-17 15:15

回复 支持 反对

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-4-17 15:15:57 | 显示全部楼层
cruelfox 发表于 2017-4-17 14:56
中断向量表你复制过去了吗? 查看0x3000处是啥?

我只是重定位flash的入口地址为0x8003000,会影响到中断向量表吗?
[C] 纯文本查看 复制代码
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */

回复 支持 反对

使用道具 举报

583

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-4-17 16:26:27 | 显示全部楼层
那你的程序是怎么在Flash中排布的?

点评

我主要是想实现UASRT-IAP的功能,flash的入口地址0x8000000开始是一个引导程序,满足条件就把程序跳转到0x8003000,0x8003000开始是应用程序。在STM32F103上是好实现的,但是在STM32F105上就是过不了USB HOST这一关  详情 回复 发表于 2017-4-17 17:09

回复 支持 反对

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-4-17 17:09:18 | 显示全部楼层
cruelfox 发表于 2017-4-17 16:26
那你的程序是怎么在Flash中排布的?

我主要是想实现UASRT-IAP的功能,flash的入口地址0x8000000开始是一个引导程序,满足条件就把程序跳转到0x8003000,0x8003000开始是应用程序。在STM32F103上是好实现的,但是在STM32F105上就是过不了USB HOST这一关,不知道哪里的问题呢

回复 支持 反对

使用道具 举报

583

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-4-17 17:30:35 | 显示全部楼层
这个原理也没有问题。我建议用JTAG/SWD调试跟踪一下,看卡死在什么中断里了。

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-4-28 23:57 , Processed in 0.350346 second(s), 15 queries , Redis On.

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