0

大多数情况下,我的项目使用 STM32F1xx MCU。在该 MCU 中,给出了向量表偏移量:

#define VECT_TAB_OFFSET  0x00000000U //copied from system_stm32f1xx.c

如果使用位于偏移量0x00000000的引导加载程序,我需要更改这些偏移量

我的主程序位于偏移量 0x0000D800。

现在我想在 STM32F0xx 上使用为 STM32F1xx 制作的引导加载程序。一切都非常相似,但我看到 STM32F072 没有向量表偏移。

我读到它有必要引导加载程序将 VTOR 复制到 RAM 并移动它。

我不会编写 ASM 代码,有没有示例或说明如何做到这一点?还是有一种简单的方法来添加偏移地址?

4

1 回答 1

1

你是对的,Cortex M0 没有VTOR寄存器,但是,你的 STM32 有一种方法可以在运行时使用SYSCFG->CFGR1.

您可以告诉链接描述文件将向量表放在嵌入式 SRAM 的开头,然后使用MEM_MODE上述寄存器的位将其重新映射到 0x00000000。

于 2020-10-01T10:34:22.420 回答