STM32:从SRAM引导和获取向量表

时间:2015-01-27 19:50:39

标签: stm32 openocd

我想从设备的SRAM区域运行我的程序。

我似乎很清楚,我必须执行以下步骤:

  1. 修改向量表偏移量寄存器SCB->VTOR(位于0xE000ED08)以指向SRAM区域的开头,因为这是我的向量表所在的位置:0x20000000
  2. 重置设备,使其获取堆栈指针初始化值,并重置处理程序地址。
  3. 不幸的是,每当我在OpenOCD中发出reset init命令时,SCB->VTOR的值都会被清除。因此,堆栈指针初始化值和重置处理程序地址是从0x00000000而不是0x20000000获取的。


    问题

    如何让我的STM32F4从0x20000000获取向量表?

1 个答案:

答案 0 :(得分:2)

只需手动加载来自SP(= VTOR)的0x20000000(MSP)和来自PC(= VTOR + 4)的0x20000004

reset init命令通常会重置整个芯片而不是核心 - 而VTOR即使在那时也会被初始化为零。