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.

[参考译文] TMS570LC4357-EP:PMU 时钟周期

Guru**** 2455560 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1120407/tms570lc4357-ep-pmu-clock-cycle

器件型号:TMS570LC4357-EP
主题中讨论的其他器件:TMS570LC4357

我们正在开发活动中使用 TMS570LC4357 Launchpad。 对于任务基准测试、我们使用 PMU 计数器、在某些情况下、该值会被冻结。我们怀疑它是由于计数器达到最大值。 目前 CPU 时钟配置为300MHz、我们想减慢 PMU 时钟的速度吗? 有可能吗? 是否有任何其他原因会影响 PMU 计数器?

谢谢、

Subash

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

    您好、 Subash、

    PMU 使用 CPU 内核时钟。 FPU 时钟没有分频器。  

    [引用 userid="517932" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/1120407/tms570lc4357-EP-PMU-clock-cycle"]在某些情况下、该值将被冻结。

    计数器寄存器是否溢出? 每次测量中使用之前的计数器复位吗?

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

    PMU 计数器是一个32位寄存器、所以如果 PCU 频率=300MHz、它可以计数的最大 CPU 周期数为2^32-1 ->大约14.3秒

    您可以在 PMU 计数器溢出中断例程中重置计数器并重新启动计数器。 因此总周期= 2^32-1 +计数器寄存器的值。

    另一种方法是切换 GIO 引脚。  

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

    您好 、QJ Wang、

    非常感谢您的回答。 当我观察到 PMU 周期计数器的值时、它 开始计数并在达到最大值之前冻结在某个值。  我在 Launchpad 以及 HDK 电路板上进行了相同的实验。  结果很奇怪、因为我在 Launchpad 中看不到任何问题、PMU 按预期计数。 但是、仅在 HDK 电路板上发现问题。   

    我已附上快照供您参考、即在 Launchpad 和 HDK 板上捕获的计数器值。  

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

    当 PMU 计数器被冻结时、CPU 是否会被挂起? CPU 是否处于 调试暂停状态? 是否在 HDK 上使用 xds100v2?

    如果可能、您可以共享您的代码吗?  

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

    您好、QJ Wang、

    是的、我们在  HDK 上使用 xds100v2。 CPU 既不会被挂起、也不会被调试暂停状态。虽然在调试模式下、我们观察到 CP15周期计数器不会针对步进操作递增、但在 launchpad 中、每个步进操作都会递增。    

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

    谢谢 Subash、

    我今天将在 HDK 上运行测试、以查看是否可以产生问题。

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

    您好、Subash、

    我正在运行测试、到目前为止我还没有产生问题:

    我的测试代码测量用于在 while ()循环中添加两个 matrix (100x100)的周期。 我得到两个结果:骑行1和骑行2:骑行1是马匹斯加法之前的值、骑行2是 加法后的周期。 对这两个值进行比较、如果 cycles2不大于 cycles1、则计数器被视为冻结。

    但当计数器达到其最大值时、我会溢出。 状态寄存器的位31被置位:

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

    我将在 TMS570LC43x HDK 上进行测试、并使用内置的 xds100v2仿真器。

    我执行了几次相同的测试、但没有产生问题。