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.

[参考译文] CCS:ROV - CAN#39;t Get swiLoad and hwiLoad enabled

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/674640/ccs-rov---can-t-get-swiload-and-hwiload-enabled

Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

您好!

我尝试了很多东西、但无法完全为 ROV 启用 hwiLoad 和 swiLoad。  附件是显示的图片、在我认为会执行该操作的.cfg 条目下方。

请告知、

Robert


VAR Load = xdc.useModule ('ti.sysbios.utils.Load');

load.updateInIdle = true;
load.windowInms = 250;
load.taskEnabled = true;
load.swiEnabled = true;
load.hwiEnabled = true;

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

    是否还使用 LoggingSetup? 如果是、它的配置是什么? 我认为它可能会覆盖您的显式设置。

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

    [引用 user="ToddMullanix"]您好、Robert、

    是否还使用 LoggingSetup? 如果是、它的配置是什么? 我认为它可能会覆盖您的显式设置。

    Todd

    [/报价]

    我是

    VAR LoggingSetup = xdc.useModule ('ti.UIA.SysBIOS.LoggingSetup');

    LoggingSetup.loadLoggerSize = 2048;
    LoggingSetup.mainLoggerSize = 16384;
    LoggingSetup.sysbiosLoggerSize = 16384;
    LoggingSetup.loadLogging =真;
    LoggingSetup.loadTaskLogging =真;
    LoggingSetup.enableTaskProfiler =真;
    LoggingSetup.benchmarkLogging = true;
    LoggingSetup.sysbiosLogging = true;
    LoggingSetup.sysbiosHwiLogging = true;
    LoggingSetup.sysbiosHwiLoggingRuntimeControl = true;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另一个未知的原因是 cpuLoad 读取0%、当我知道它不是时!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否还可以设置以下内容?
    LoggingSetup.loadSwiLogging =真;
    LoggingSetup.loadHwiLogging =真;

    上面的 false 的默认设置是执行以下操作
    load.swiEnabled = true;
    load.hwiEnabled = true;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在、我只得到一个未定义的、仍然是0% CPU 负载

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

    Robert、

    您能否尝试在运行时手动获取 CPU 负载。 运行一段时间并暂停后、您是否可以检查内存浏览器中的值?

    #include 
    
    uint32_t testCPULoad =(~0);
    
    void someTask()
    {
    testCPULoad = Load_getCPULoad();
    } 

    ti.sysbios.utils.Load 文档中有一个标题为 cavoardes 的部分。 您能否验证这些情况是否适用于您?

    谢谢、
    Derrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从我在这一点上的有限知识来看、似乎没有任何这些警告适用于我。 根据您在上面提供的代码段、我仍然得到零负载、即使是手动执行它也是如此。 以下是我的.cfg 文件中的相关条目以供审阅


    VAR 加载 = xdc.useModule ('ti.sysbios.utils.load');

    load.updateInIdle =真;
    Load.windowInms = 500;
    Load.taskEnabled =真;
    Load.swiEnabled =真;
    load.hwiEnabled =真;


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

    我尝试为 Load.c 中的一些例程设置断点,只是尝试和调试... 但是断点指示器会立即从蓝色变为灰色... 无法实现断点。  这可能只是因为没有为 BIOS 代码打开调试符号? (它们用于我的一般应用)。

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已确认 Load_getCPULoad 未运行、除非我手动调用它(并尝试在 Load.c 中设置断点为灰色)、正如您在该代码段中所述。 应该在没有手动代码的情况下运行、因此我的配置无法实现这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将其设置为 false、我想这是 Load_getCPULoad 通常调用的方式

    task.enableIdleTask = true

    但是、当将其设置为 true 时、我现在会在运行时获得中止。 到目前为止、我在 BIOS 启动中跟踪到了 task.c 中的这一行

    /*通过 ENTER()开始第一个任务*/
    Task_SupportProxy_swap((ptr )&pingTask->context,
    (ptr)&Task_module->curTask->context);

    是否有方法在打开符号调试的情况下像这样构建 SYS-BIOS 文件、以便我可以获得更多信息?

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

    Robert、

    尝试在您的 application.cfg 中添加或修改以下代码。 这可能有助于在应用中止时获得更有意义的输出。

    var text = xdc.useModule('xdc.runtime.Text');
    /*
    这些字符串放置在.const 段中。 将此参数设置为
    * false 将节省.const 段中的空间。 错误、断言和日志消息
    *将打印原始 ID 和 args、而不是格式化的消息。
    *
    *选择一个:
    *- true (默认值)
    *此选项将测试字符串加载到.const 中以方便调试。
    *- false
    *此选项可减小.const 占用空间。
    //
    text.isLoaded = true; 

    谢谢、
    Derrick

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

    我需要增加空闲任务堆栈大小。  执行此操作后、不再发生崩溃、我看到加载值!

    为了供将来参考、此处提供了修复方法

    task.enableIdleTask = true

    在.cfg 文件中、默认情况下可能是 true (我早已将其设置为 false)

    并确保有足够大的空闲任务堆栈、以处理从该堆栈运行的诊断功能

    Task.idleTaskStackSize                = 0x800;

    谢谢大家、

    Robert

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

    Robert、

    非常好、我很高兴您能够解决您的问题。

    Derrick