打印
[STM32F1]

修改SCB问题

[复制链接]
318|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2022-5-8 18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做STM32F105测试,用的是STM官网下的USB HOST库,把带USB HOST驱动的应用程序中的VECT_TAB_OFFSET改成0x3000,程序就死在USBH_Init()函数里了,把VECT_TAB_OFFSET改回0或者把USB HOST的驱动屏蔽掉,就工作正常。很奇怪啊,请大侠们不吝赐教。

使用特权

评论回复
沙发
heweibig| | 2022-5-8 18:15 | 只看该作者
中断向量表你复制过去了吗?

使用特权

评论回复
板凳
supernan| | 2022-5-8 18:16 | 只看该作者
中断向量偏移地址改了;

使用特权

评论回复
地板
dingy| | 2022-5-8 18:19 | 只看该作者
看下中断向量的地址,有没有以前偏移

使用特权

评论回复
5
xxrs| | 2022-5-8 18:22 | 只看该作者
查看0x3000处是啥

使用特权

评论回复
6
pengf| | 2022-5-8 18:26 | 只看该作者
重定位flash的入口地址为0x8003000,会影响到中断向量表吗

使用特权

评论回复
7
songqian17| | 2022-5-8 18:29 | 只看该作者
程序是怎么在Flash中排布的?

使用特权

评论回复
8
gongche| | 2022-5-8 18:33 | 只看该作者
修改 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里关中断了, 所以要重新打开


}

使用特权

评论回复
9
spark周| | 2022-5-12 22:16 | 只看该作者
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000); //在这里改向量表不能起效果,  必须在system_stm32f10x.c 里直接改向量表

大侠,小弟问下,这里改向量表为什么不起作用呢?

使用特权

评论回复
10
pengf| | 2022-5-12 22:20 | 只看该作者
很有可能你修改了VECT_TAB_OFFECT后,后面的代码产生了一次中断,但是这个中断执行的位置有问题

使用特权

评论回复
11
heweibig| | 2022-5-12 22:23 | 只看该作者
可能有对应的地方修改过。

使用特权

评论回复
12
jlyuan| | 2022-5-12 22:25 | 只看该作者
我估计是你有的地方没有改

使用特权

评论回复
13
chuxh| | 2022-5-12 22:27 | 只看该作者
SCB是指的什么

使用特权

评论回复
14
renyaq| | 2022-5-12 22:28 | 只看该作者
默认的配置不可以吗

使用特权

评论回复
15
zhuhuis|  楼主 | 2022-5-12 22:30 | 只看该作者
那我就知道怎么回事了,多谢大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝