This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C1294NCPDT:未触发硬件观察点

Guru**** 2618835 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/783868/ccs-tm4c1294ncpdt-hardware-watchpoint-not-being-triggered

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

我在获取要触发的硬件观察点(断点)时遇到问题。  我尝试在闪烁示例上执行此操作。  该示例只需切换端口 N 的引脚0即可使 LED 闪烁。  如下面的屏幕截图所示、这位于地址0x400643FC。  在所有帐户中、我都正确配置了观察点、如下所示、但是随着 LED 亮起/熄灭、程序永远不会中断。  有人有什么想法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Terence:
    有关详细信息、请参阅有关 GPIO 模块的数据寄存器操作的数据表。 基本上、每个8位 GPIO 端口有256个组合。 由于 Cortex-M4内核不支持位写入、因此每个组合都被映射到一个唯一的地址以方便位写入。 偏移量0x3FC 意味着您将写入端口 N 中的所有8位

    另请参阅以下帖子、该帖子可能也会有所帮助。
    e2e.ti.com/.../2880239

    另一种理解方法是查看 GPIOPinWrite 的方式。 请参阅下面的 ui8引脚如何被4移位作为偏移地址。

    //
    //
    //! 将值写入指定的引脚。
    //!
    //! \param ui32Port 是 GPIO 端口的基址。
    //! \param ui8pins 是引脚的位封装表示。
    //! \param ui8Val 是要写入引脚的值。
    //!
    //! 将相应的位值写入指定的输出引脚
    //! Ui8引脚。 写入配置为输入引脚的引脚无效。
    //!
    //! 引脚使用位封装字节指定、其中每个位都是
    //! 置位表示要访问的引脚、以及字节的位0的位置
    //! 代表 GPIO 端口引脚0、位1代表 GPIO 端口引脚1、依此类推。
    //!
    //! \无返回。
    //
    //
    无效
    GPIOPinWrite (uint32_t ui32Port、uint8_t ui8引脚、uint8_t ui8Val)

    //
    //检查参数。
    //
    assert (_GPIOBaseValid (ui32Port));

    //
    //写入引脚。
    //
    HWREG (ui32Port +(GPIO_O_DATA +(ui8引脚<< 2)))= ui8Val;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Charles。 我想我现在已经理解了。 我需要将观察点地址设置为0x40064004。