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:PMU 计数器似乎错误

Guru**** 2481465 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/666387/tms570lc4357-pmu-counter-seems-to-be-wrong

器件型号:TMS570LC4357

您好!

我们使用的是 TMS570LC4357ZWT (launchpad)、我们希望监控我们的时间周期。

为此,我们使用配置了 HCG 的 PMU:

- PMU 计数器使能

-事件导出启用

-计数器事件0/1/2设置为0x11 (PMU_CYCLE _COUNT)

在 HCG 中、HCLK 设置为100MHz。

我们基于示例 spna138a 的代码:  

初始化:

#define f_HCLK (float) 100.0

volatile unsigned long cycles_PMU_start、cycles_PMU_end、cycles_PMU_measure、cycles_PMU_comp、cycles_PMU_code、cycles_PMU_prev、cycles_PMU;
易失性浮点 TIME_PMU_CODE;

_pmuInit_();
_pmuEnableCountersGlob_();
_pmuSetCountEvent_(pmuCOUNTER0、PMU_cycle_count);

CYCESS_PMU_PRV = 0;

while (1){

_pmuResetCounters_();
_pmuResetEventCounter_();
_pmuStartCounter_(0x80000007U);
cycles_PMU_prev =_pmuGetEventCount_(pmuCOUNTER0);

/*要测量的代码*/

_pmuStopCounter_(pmuCOUNTER0);

cycles_PMU =_pmuGetEventCount_(pmuCOUNTER0);

CYCes_PMU_Measure = CYCes_PMU_PRV - CYCes_PMU;
TIME_PMU_CODE = CYCLS_PMU_Measure /(f_HCLK);// TIME_CODE [us]、f_HCLK [MHz]

首先、我们已经看到、如果我们希望在 CYCLES _PMU 中包含数据、则必须为所有计数器(_pmuStartCounter_(0x80000007U)星号、而不是星号。 这是正常的吗?

第二步:使用我们的代码,我们将始终检索与 TIME_PMU_CODE (42889676.0)中的值相同 的值,而不受要测量的代码的影响,使用示波器和 GPIO 估算的代码持续时间。

我们认为我们的代码中存在问题...

如果有人想帮助我们...

提前感谢、

此致、

Alain。  

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

    我正在查看您的代码、以查看我是否可以找到问题所在。 我明天将与您一起更新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Alain
    我正在审核一些可能未解决的旧论坛帖子。 由于此帖子已打开并最终锁定、我想检查您是否能够解决问题或需要进一步的指导?
    此致
    Mukul