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.

[参考译文] TMS570LS3137:任务内的 PMU

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582131/tms570ls3137-pmu-inside-a-task

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

大家好、

我使用 PMU 周期计数器来计算驱动程序初始化和后续阶段的执行时间。

如果我在启动 FreeRTOS 调度程序之前放置代码、PMU 代码在主文件中看起来运行良好。  

现在、我有一个要求在一个任务内(在启动调度程序之后)测量 CPU 时间和

每当我在启动调度程序后使用 PMU 代码时、我的程序总是在 sys_intvecs.asm (dabort)文件结束。

如果可能、有人可以告诉我我我所犯的问题或错误是什么? 什么是 sys_intvecs.asm?

此致、  

SAI  

 

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

    我会将您的问题转交给我们的软件专业人员。

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

    您好、Sai、

    希望您使用 HALCoGen 生成的文件。

    PMU 寄存器只能在特权模式下访问。 默认情况下、HALCoGen 会在 CPU 进入 main 之前将其设置为"系统模式"。 系统模式是特权模式。 这就是您能够使用 PMU 功能的原因。

    我相信您已经创建了一个在用户模式下运行的任务。 非特权模式下的任何 PMU 函数调用都会导致中止。

    如果您想在任务中使用 PMU、我建议您为您创建的任务提供特权访问权限。 您可以通过设置 传递给 taskCreate 函数的优先级参数的 portPRIVILEGE_bit (例如:2 | portPRIVILEGE_bit、其中2是设置的任务优先级)来实现此目的。 有关 更多详细信息、请参阅 FreeRTOS API 文档。

    希望这对您有所帮助!

    谢谢、此致、

    Veena

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

    要回答您的问题、"什么是 sys_intvecs.asm? "。
    sys_intvecs.asm 是我们保留异常处理程序的文件。 我希望您了解 Cortex-R CPU 的各种例外情况。 该文件中的指令被放置在存储器中的地址0。 这是发生异常时 CPU 将分支到的地址。
    在用户模式下使用 PMU 函数调用的情况下、会发生异常、CPU 会立即分支到 sys_intvecs.asm 文件中提供的相应异常矢量
    有关异常的更多详细信息、请参阅 ARM Cortex-R4 TRM。

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

    尊敬的 Veena:

    非常感谢您的回答和很好的解释。 我将尝试并告诉您结果:)

    祝你度过美好的一天:)


    此致、
    SAI。