Arm 复位时STM32H7上VTOR寄存器的行为

Arm 复位时STM32H7上VTOR寄存器的行为,arm,stm32,boot,Arm,Stm32,Boot,Cortex M7上的向量表偏移寄存器允许重新定位向量表 我想知道向量表在重新定位并发生软重置时是如何管理的 ARM编程手册提到重置后VTOR的值为“未知” 软重置后使用的重置处理程序是什么:Flash中矢量表中的“原始”重置处理程序?还是通过VTOR设置的“重新定位”的 堆栈指针也有同样的问题。编程手册规定,“复位时,处理器加载MSP,其值来自地址0x00000000”。这是否意味着重新定位的向量表中的堆栈指针从未使用过 这是否意味着重新定位的向量表中的堆栈指针 从未使用过 硬件不使用它。启动

Cortex M7上的向量表偏移寄存器允许重新定位向量表

我想知道向量表在重新定位并发生软重置时是如何管理的

ARM编程手册提到重置后VTOR的值为“未知”

软重置后使用的重置处理程序是什么:Flash中矢量表中的“原始”重置处理程序?还是通过VTOR设置的“重新定位”的

堆栈指针也有同样的问题。编程手册规定,“复位时,处理器加载MSP,其值来自地址0x00000000”。这是否意味着重新定位的向量表中的堆栈指针从未使用过

这是否意味着重新定位的向量表中的堆栈指针 从未使用过

硬件不使用它。启动应用程序时,引导加载程序使用它

软重置后使用的重置处理程序:来自 Flash中的向量表

由引导引脚和引导选项字节选择的一个

ARM编程手册提到重置后VTOR的值 是“未知”

我不这么认为,我的编程手册显示: 这是非常明确的:)

我想知道向量表在重新定位时是如何管理的 然后发生软复位

与硬件重置期间相同

这是否意味着重新定位的向量表中的堆栈指针 从未使用过

硬件不使用它。启动应用程序时,引导加载程序使用它

软重置后使用的重置处理程序:来自 Flash中的向量表

由引导引脚和引导选项字节选择的一个

ARM编程手册提到重置后VTOR的值 是“未知”

我不这么认为,我的编程手册显示: 这是非常明确的:)

我想知道向量表在重新定位时是如何管理的 然后发生软复位


与硬件重置期间相同。

我会避免使用arm或其他软件的“编程手册”,很少看到一本,我会发现它有问题/错误。使用您正在使用的核心(和修订版)的技术参考手册,以及架构参考手册。编程手册(来自arm)的质量或准确性与其他手册不一样,并且有些地方令人不安。如果使用vtor查找向量,则它不可能未知,否则您将无法可靠引导,因此它可能未知,并且重置(向量)有异常,或者它已知(零)。欢迎您进行实验,但sp init值(和重置向量)可能不会在重新定位的表中使用。复位是对arm内核的复位,芯片供应商将地址空间映射到的是芯片供应商的东西,并且是独立的,arm内核在复位时从已知地址获取,除非arm core具有软/部分重置,并且在这种情况下,例外情况将记录在arm或arm trm中,例如ST为某些零件提供了编程手册,在我看来,该手册是该core的arm或arm trm的非法复制品。现在arm有了编程手册的概念,我避免了它们,就像瘟疫一样,因为我看到了许多这样的问题。因此,重置时可能不使用vtor,并且sp和重置向量位于已知的固定地址,因此从技术上讲,vtor可能是随机垃圾。但是当我看它的时候,我还没有经历过这种情况,这个答案中显示的文档也会表明它确实有一个已知的重置值(即使重置本身没有使用它)。我会避免使用arm或其他的“编程手册”,我很少看到一本,我会发现它有问题/错误。使用您正在使用的核心(和修订版)的技术参考手册,以及架构参考手册。编程手册(来自arm)的质量或准确性与其他手册不一样,并且有些地方令人不安。如果使用vtor查找向量,则它不可能未知,否则您将无法可靠引导,因此它可能未知,并且重置(向量)有异常,或者它已知(零)。欢迎您进行实验,但sp init值(和重置向量)可能不会在重新定位的表中使用。复位是对arm内核的复位,芯片供应商将地址空间映射到的是芯片供应商的东西,并且是独立的,arm内核在复位时从已知地址获取,除非arm core具有软/部分重置,并且在这种情况下,例外情况将记录在arm或arm trm中,例如ST为某些零件提供了编程手册,在我看来,该手册是该core的arm或arm trm的非法复制品。现在arm有了编程手册的概念,我避免了它们,就像瘟疫一样,因为我看到了许多这样的问题。因此,重置时可能不使用vtor,并且sp和重置向量位于已知的固定地址,因此从技术上讲,vtor可能是随机垃圾。但是当我看到它时,我没有经历过这种情况,并且这个答案中显示的文档也会表明它确实有一个已知的重置值(即使重置本身没有使用它)。