2

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

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

  1. 修改向量表偏移寄存器SCB->VTOR(位于0xE000ED08)以指向 SRAM 区域的开头,因为那是我的向量表所在的位置:0x20000000
  2. 重置设备,使其再次获取堆栈指针初始化值和重置处理程序地址。

不幸的是,每当我在 OpenOCD 中发出reset init命令时,值SCB->VTOR都会被清除。因此,堆栈指针初始化值和复位处理程序地址是从而0x00000000不是从 中获取的0x20000000


问题

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

4

1 回答 1

2

只需手动从 (=VTOR) 和 (=VTOR+4) 加载( MSP ) SP0x20000000PC0x20000004

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

于 2015-01-28T15:37:01.620 回答