如何使用复位向量在STM32上填充未使用的内存?

时间:2013-11-06 20:43:35

标签: linker embedded cortex-m3 stm32 iar

我正在使用带有IAR的STM32F100价值线处理器。我想通过跳转到Reset_Handler(或HardFault_Handler)来填充未使用的代码存储器。我如何使用IAR?

2 个答案:

答案 0 :(得分:2)

大多数hex文件生成器会在请求时填充内存,您可以在IDE中执行此操作,如果不是the SRecord tools可以为您执行此操作。

然而,只是将未使用的闪存留空(0xffff)会产生无效的指令异常并最小化您的图像大小。

请注意,跳转到重置处理程序与执行重置不同 - 硬件状态将是不确定的。更好的方法是启用看门狗并用B .(分支到自己)0xE7FE填充内存。看门狗将超时并创建一个真正的重置。

答案 1 :(得分:1)

假设您正在使用Embedded Workbench,请在项目选项下 - >链接器类别,有一个“校验和”选项卡,其中包含填充未使用内存的选项以及计算内存校验和等。当然,这就引出了为什么要使用处理程序地址填充内存的问题。如果你想捕获杂散执行,那么这就是Memory Protection单元的优点。