社区导航

 
查看: 632|回复: 7

[求助] 奇怪: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的驱动屏蔽掉,就工作正常。很奇怪啊,请大侠们不吝赐教。

回复

使用道具 举报

1892

TA的帖子

8

TA的资源

版主

Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

595

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 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. */

回复 支持 反对

使用道具 举报

595

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 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这一关,不知道哪里的问题呢

回复 支持 反对

使用道具 举报

595

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

39

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-5-3 23:46:06 | 显示全部楼层
碰过你情况

修改 system_stm32f10x.c
#define VECT_TAB_OFFSET  0x3000

程序里main.c

void main()
{
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000); //在这里改向量表不能起效果,  必须在system_stm32f10x.c 里直接改向量表
        __enable_irq(); //要启用IRQ,  因为你IAP里关中断了, 所以要重新打开


}

回复 支持 反对

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2017-6-25 04:47 , Processed in 0.332367 second(s), 19 queries , Redis On.

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