0

在 STM32F4 上使用 Keil µVision 我试图向 GPIO 数据寄存器添加一个观察点,但它不会触发。我希望在输出数据写入该寄存器后立即触发观察点。将观察点设置为 os 计时器可以正常工作。据我所知,外设寄存器是在 STM32 F4 中映射的内存。

我在这里缺少任何(简单)解释吗?非常感谢任何提示。

4

3 回答 3

0

没有来源,也没有个人经验,但我能想到一些为什么这不起作用的原因。

通常值不像在 RAM 中那样“存在”,而是在您访问外围寄存器时创建。

你可以说定期访问可以解决这个问题,但这不适用于读取有副作用的寄存器(通常清除一些状态标志)。

我认为您必须为 GPIO 创建一个中断处理程序,并为此创建一个断点。

于 2019-04-29T11:45:17.013 回答
0

如果 12 个周期的延迟是一个问题,则有一种解决方法。使用 Pin 作为触发内存到内存 DMA 传输的触发器。在目标(或源)RAM 地址上设置观察点。

于 2019-04-30T21:28:22.897 回答
0

虽然 ARM 内核可以访问与 SRAM 或闪存相同的平面 32 位地址空间中的外设 I/O 寄存器,但外设 I/O 寄存器位于 MCU 上的不同总线上,而不是通过与 SRAM 相同的总线访问. 例如,STM32F 上有 ABH 总线,根据器件的不同,通常又分为 APB1 和 APB2 总线。在任何情况下,由 ARM 定义的调试控制器单元(“CoreSight”)提供数据观察点功能,它只适用于“真实”数据访问。

如果它确实会很棒;-)

于 2019-04-30T19:54:52.430 回答