3

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

4

2 回答 2

3

如果需要,大多数十六进制文件生成器都会填充内存,您可以在 IDE 中执行此操作,如果没有,SRecord 工具当然可以为您执行此操作。

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

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

于 2013-11-07T12:16:19.013 回答
1

假设您使用的是 Embedded Workbench,在 Project Options -> Linker 类别下,有一个“Checksum”选项卡,其中包含填充未使用内存以及计算内存校验和等选项。当然,这引出了为什么您想用处理程序地址填充内存。如果你想捕获杂散执行,那么这就是内存保护单元的好处。

于 2013-11-06T22:12:00.313 回答