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.

[参考译文] TDA4VM:MCU R5F 基准测试和 CPU 负载测量

Guru**** 2535550 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/875964/tda4vm-mcu-r5f-benchmark-and-cpu-load-measurement

器件型号:TDA4VM

您好!

我正在尝试 编写基准测试、强制执行给定的 CPU 负载(根据空闲时间定义)和功耗。

当前的基准测试创建一个包含 Task_sleep()函数的任务,该函数保持其执行并将处理器切换为空闲状态。 然后由 Load_getCPULoad()函数测量 CPU 负载。

当我在没有引导模式下运行此基准测试时、CPU 负载大约等于12%、但当我在 SD 引导模式下(通过 u-boot)运行时、CPU 负载大约等于85%。

我想知道、根据引导模式产生不同结果的原因是什么?

在 Vishal Mahaveer 的建议下,我测量了每个引导模式中由 Task_sleep()引起的任务保持是否相同。 我将 Task_sleep()函数参数设置为达到10s 保持。 同样、我在无引导模式下完成了10秒的任务、在 SD 引导模式下完成了大约1秒的任务。

您是否有其他想法、如何在引导模式下获得相同的基准测试结果?

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

    附加客户使用的 cfg 文件
    e2e.ti.com/.../3034.app.cfg

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

    您好!

    对 CPU 负载进行重新分级、我认为这可能与 CCS (无引导模式)和 UART (SD 引导)中打印的处理方式有关。 对于 Task_sleep()异常,我认为在 CCS gels 和 SPL uBoot 中,计时器的配置可能不同。 您能否提供 timer.xs 文件? 我将请一位专家就此发表评论。

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

    您好!

    感谢您的回答。

    附加我的计时器.xs 文件。 我无法上传.xs 文件、因此我将扩展名更改为.txt。

    e2e.ti.com/.../r5_5F00_mpu.txt

    此致、
    Łukasz μ A

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

    尊敬的 Lukasz:

    几个问题-

    1.使用非引导模式时,应使用 GEL 文件。 您使用的是哪个 CCS 版本?

    2.在 SD 引导中,使用 u-boot 是否引导 Linux? 如果是、则有一个工具(k3conf)可用于获取所使用计时器的频率。

    3.您使用的是哪个 SDK、BIOS 版本和 u-boot?

    因此、BIOS 用于跟踪时间的 BIOS 计时器可能会被 gels 与 u-boot 以不同的方式配置。

    从 Vishal 发布的 BIOS cfg 文件中、您可以看到您正在使用哪个计时器、请查看基址。 例如-如果您在 MCU2_1上运行、那么您将使用 DMTIMER#13、其基址为- 0x023D0000。

    我们可以在两种情况下查找 BIOS 计时器的频率- CCS (gels)与 u-boot。 如果这两者中存在增量、则问题出在这里。

    请提供上述问题的答案、我们可以从此处继续。

    此致、

    Karan

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

    尊敬的 Lukasz:

    我没有听到您的反馈、我假设您能够解决您的问题。 如果是、您能否分享您的调查结果?

    此致、

    Karan

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

    您好、Karan、

    我将介绍 Lukasz 的主题。

    回答您的问题:

    CCS 版本为9.1.0.00010。

    2.我们使用 Linux 进行引导,k3conf 报告的 CPU 频率为2GHz。

    SDK 06_01_00_15、BIOS 6_76_03_01、U-boot SPL 2019.01-ga280dd38e1

    关于"您可以查看您使用的计时器、请查看基址"-我们尚未对此进行检查。

    此致、

    Peter

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

    尊敬的 Peter:

    是否可以检查 BIOS 计时器配置的频率?

    此外、您在哪个内核上运行 BIOS 应用程序? 您可以使用此信息获取 BIOS 所使用的定时器的名称。 您可以在 BIOS 配置文件中看到它。 唯一的解释是、gels 和 U-boot 以不同的方式配置该计时器。

    cfg 文件中的以下部分将为您提供有关哪个计时器的信息-

    if (CoreID="mcu1_0")
    {
    core.id = 0;
    /* DM 计时器 cfg */
    clock.timerId = 1;
    }
    if (CoreID="mcu1_1")
    {
    core.id = 1;
    /* DM 计时器 cfg */
    clock.timerId = 2;
    }
    if (CoreID="MCU2_0")
    {
    core.id = 0;
    clock.timerId = 0;
    /* DMTimer #12 -一般来说,地址是0x024x0000,其中 x 是 timer #*/
    DMTimer.timerSettings[0].baseAddr = 0x024c0000;
    DMTimer.timerSettings[0].intNum = 168;
    }
    if (CoreID="MCU2_1")
    {
    core.id = 1;
    clock.timerId = 1;
    /* DMTimer #13 -一般来说,地址是0x024x0000,其中 x 是 timer #*/
    DMTimer.timerSettings[1].baseAddr = 0x024d0000;
    DMTimer.timerSettings[1].intNum = 169;
    }
    if (CoreID="mcu3_0")
    {
    core.id = 0;
    clock.timerId = 2;
    /* DMTimer #14 -一般来说,地址是0x024x0000,其中 x 是 timer #*/
    DMTimer.timerSettings[2].baseAddr = 0x024e0000;
    DMTimer.timerSettings[2].intNum = 170;
    }
    if (CoreID="mcu3_1")
    {
    core.id = 1;
    clock.timerId = 3;
    /* DMTimer #15 -一般来说,地址是0x024x0000,其中 x 是 timer #*/
    DMTimer.timerSettings[3].baseAddr = 0x024f0000;
    DMTimer.timerSettings[3].intNum = 171;
    } 

    基于 BIOS 的 Timer. xs 文件、BIOS 计时器应设置为19.2MHz -请验证。

    我希望 gels 将计时器配置为正确的频率、正如您在没有引导/CCS 模式的情况下预期睡眠10秒一样。

    名称:"DMTimer12"、
    baseAddr:0x024c0000、
    intNum:168、
    EventID:-1、
    intFreq:{
    Lo:19200000、
    你(们)好:0 

    此致、
    Karan

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

    您好、Piotr、

    您是否能够执行 Karan 提到的步骤?

    此致、
    Vishal