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.

[参考译文] LP-AM243:采用 TaskP_loadGetTotalCpuLoad ()的 CPU 负载分析(MCU+ SDK TaskP)

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1470699/lp-am243-cpu-load-analysis-with-taskp_loadgettotalcpuload-mcu-sdk-taskp

器件型号:LP-AM243

工具与软件:

你(们)好;

我想在我在 LP-Am2434评估板上开发的项目中分析每个内核的 CPU 负载。 为此、我在 MCU+ SDK 中使用 TaskP_loadGetTotalCpuLoad ()方法并传输​​通过 UART 获取的值。  

在分析​​保存的值时、可以看到 core0-0中的 CPU 负载值不断增加、而且 EtherCAT 从站堆栈应用正在运行。 它一开始会快速增加、然后缓慢增加、直至达到99.8%的值。




CPU 负载值非常高的事实让我质疑我使用的方法。  您认为使用此方法分析 CPU 负载是正确的吗? 您还推荐哪些其他方法?

好的
卡迪尔

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

    你好、Kadir、

    我正在查看您的问题、您可能希望在星期一之前得到回复。

    此致、

    Anil。

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

    你好、Kadir、

    上述 API 用于测量 CPU 负载、我们需要检查 EtherCAT 从站任务消耗更高 CPU 负载的原因。

    我可以知道有多少任务正在运行吗? 什么是基本 RTOS schedular time?

    此致、

    Anil。

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

    Anil、您好!

    感谢您的答复。  您能告诉我们如何查看  Base RTOS schedular Time 吗?  我的 EtherCAT 频率是4kHz

    正在运行13个任务、1个任务用于监控 CPU 负载、而不是创建 CPU 负载。




    好的
    卡迪尔


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

    尊敬的 Kadir:

    我可以知道您正在运行哪个 EtherCAT 应用程序以及 SDK 版本吗?

    此致、
    亚伦

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

    你好、亚伦;

    我们讨论了 EtherCAT 从站简单示例、并添加了更多字典对象。  
    这是 motor_control_sdk_am243x_09_02_00_09的子文件夹中的工业通信 SDK。

    我在一些消息来源看到、MainLoop 被称为非常快。 您是否认为98%的 CPU 负载是不可接受的值?(我认为应该是不可接受的)如果您在示例中对其进行了测量、您能否分享一下它是什么?

    此致
    卡迪尔

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

    谢谢你、Kadir。 我将指派给堆栈专家、他们可以对此做进一步的评论。

    此致、
    亚伦

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

    谢谢。 如果您能分享 EtherCAT Simple slave 示例的 CPU 负载值、这对我来说非常有用。

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

    你好、Kadir、

    由于 EtherCAT 子器件堆栈的架构、因此无法可靠地测量 CPU 负载。 为了测量 CPU 负载,您可以在  EC_SLV_APP_SS_loopTask ()中引入1ms   的延迟,这可以通过将 OSAL_Sched_yield ()替换为 OSAL_Sched_sleepus (1000 )来实现。

    此外, 在调用 TaskP_loadGetTotalCpuLoad()之后调用 API TaskP_loadResetAll() 。 否则、将重置任务加载统计信息、直到 重置负载统计信息不断累积。 请参阅 CPU/任务加载 API

    此致、

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

    谢谢 Harsha...!