[应用相关] STM32F105修改SCB问题

[复制链接]
1143|14
 楼主| zhuhuis 发表于 2018-8-29 08:42 | 显示全部楼层 |阅读模式
最近在做STM32F105测试,用的是STM官网下的USB HOST库,把带USB HOST驱动的应用程序中的VECT_TAB_OFFSET改成0x3000,程序就死在USBH_Init()函数里了,把VECT_TAB_OFFSET改回0或者把USB HOST的驱动屏蔽掉,就工作正常。很奇怪啊,请大侠们不吝赐教。
pangb 发表于 2018-8-29 08:43 | 显示全部楼层
中断向量表你复制过去了吗?
chenjunt 发表于 2018-8-29 08:47 | 显示全部楼层
中断向量偏移地址改了;
ousj 发表于 2018-8-29 08:50 | 显示全部楼层
看下中断向量的地址,有没有以前偏移
wenfen 发表于 2018-8-29 08:53 | 显示全部楼层
查看0x3000处是啥
juventus9554 发表于 2018-8-29 08:55 | 显示全部楼层

重定位flash的入口地址为0x8003000,会影响到中断向量表吗
songqian17 发表于 2018-8-29 08:58 | 显示全部楼层
程序是怎么在Flash中排布的?
huwr 发表于 2018-8-29 09:02 | 显示全部楼层
修改 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里关中断了, 所以要重新打开


}
heweibig 发表于 2018-8-29 09:04 | 显示全部楼层
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000); //在这里改向量表不能起效果,  必须在system_stm32f10x.c 里直接改向量表

大侠,小弟问下,这里改向量表为什么不起作用呢?
heweibig 发表于 2018-8-29 09:06 | 显示全部楼层
很有可能你修改了VECT_TAB_OFFECT后,后面的代码产生了一次中断,但是这个中断执行的位置有问题
 楼主| zhuhuis 发表于 2018-8-29 09:09 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家,结贴了哈
huahuagg 发表于 2018-8-29 15:27 | 显示全部楼层
可能有对应的地方修改过。
renzheshengui 发表于 2018-9-4 10:19 | 显示全部楼层
我估计是你有的地方没有改
wowu 发表于 2018-9-4 10:57 | 显示全部楼层
SCB是指的什么
xuanhuanzi 发表于 2018-9-4 20:46 | 显示全部楼层
默认的配置不可以吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部