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.

[参考译文] RTOS/TM4C123GH6PM:执行图和一些用例问题

Guru**** 2463330 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/658550/rtos-tm4c123gh6pm-execution-graph-and-some-use-case-question

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

您好、香榭丽舍

我的客户对"专有尺寸"和"全包尺寸"有疑问。 请告诉我、"专有尺寸"和"全包尺寸"是什么意思?

他们还发现堆栈峰值尺寸太大。 是否有任何方法可以减少它? 请参阅下图了解堆栈峰值尺寸。 它是 RTOS ObjectView stackPeak:task0Fun 268。

当我尝试启用执行图时、它显示错过了 UIA。 请告诉我在哪里可以设置 UIA? 我使用 pwmled_ek_TM4C1294XL_TI_TivaTM4C1294NCPDT 项目。

您能否告诉我是否有任何文档/链接来指导如何使用堆栈使用和 ROV?

感谢您提前回复

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

    您好 Lisa、

    [报价用户="Lisa Ding"]您能告诉我"专用尺寸"和"包括尺寸"是什么意思吗?

    您能提供一些相关背景信息吗?

    [报价用户="Lisa Ding"]是否有任何方法可以减少它?

    是的。 创建任务时、栈的大小在传递到 Task_create (或 Task_constructure) API 的 Task_Params 结构中指定。 如果未在初始化的参数结构中设置值、则使用默认值。 默认值由 .cfg 中的 Task.defaultStackSize 值控制。 如果未设置该值、则其默认值取决于器件(对于大多数器件、该值为512)。 以下是在运行时设置堆栈大小的示例

    Task_Params taskParams;

    Task_Params_init (&taskParams);
    taskParams.STACKSIZE = THREADSTACKSIZE;
    taskParams.priority = 1;
    consoleHandle = Task_create ((Task_FuncPtr) consoleThread、&taskParams、&EB);

    [报价用户="Lisa Ding]您能告诉我在哪里可以设置 UIA 吗? [/报价]

    TI-RTOS 中有一些 UIA 示例。 启用它的最简单方法是将以下内容添加到.cfg 文件中。 这将启用系统分析仪在目标停止时可以查看的基本日志记录。

    BIOS.logsEnabled = true;

    VAR LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');

    LoggingSetup 模块具有更多配置选项,但默认设置将使您启动并运行。 有关更多详细信息、请参阅 API 参考文档(CDOC)。

    下面是一个培训视频、介绍了 TI-RTOS 的一些调试功能:  

    Todd

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

    您好 Todd、

    感谢您的回复。 我的客户想知道如何减小叠层峰尺寸。  我认为这个大小与函数调用有关。 如果客户减小局部变量、则应能够减小 stackPeak 尺寸。 我是对的吗?  

    客户还想知道执行图。 但是、由于他的项目中有3个任务、因此执行图仅显示2个任务。 它错过了一个任务。 您能否告诉我每个任务是否应该出现在执行图上? 还是执行图仅显示您现在运行的内容? 在下图中、它错过了执行图中的 AnalogInputHandle。  谢谢!  

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

    [报价用户="Lisa Ding]我的客户希望了解如何减小叠层峰尺寸。  我认为这个大小与函数调用有关。 如果客户减小局部变量、则应能够减小 stackPeak 大小。[/quot]

    是的、可能的局部变量被放置在堆栈上、所以放置大缓冲区通常是需要冻结的。 您的客户可以观看此视频、该视频讨论堆栈。 根据他们使用的编译器、有一些很好的工具可帮助识别大型堆栈使用情况:  

    Execution Graph 基于目标上的日志记录。 因此、如果日志记录中的任务没有活动、则执行图不知道它。 一个常见的问题是日志缓冲区太小。 默认情况下、它在满时换行。 使其变大可实现更多记录。 如果他们在.cfg 中使用 LoggingSetup、则只需增加缓冲区的大小。

    Todd

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

    感谢您的回复。 我会将其传递给客户。