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/MSP430F5659:所需堆栈峰值使用说明-任务

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/616042/rtos-msp430f5659-clarification-required-stack-peak-usage---task

部件号:MSP430F5659

工具/软件:TI-RTOS

 您好,支持团队,

感谢您的宝贵支持

 在我们的固件设计中, 我们有4个任务,用于通信,数据处理,诊断,监视。

 

计划:                            基于优先级的优先计划

任务间通信:   使用邮箱

邮箱大小:                          最多90个字符

堆栈大小:                              512字节

固件设计分析:

我们检查了处于运行状态(在不同阶段)和调试模式下处于阻止状态的所有任务的堆栈使用情况。

 首先  ,我们在调试模式下运行设备 ,并在通信任务的4个位置保留断点,并观察所有任务的堆栈峰值。

                                           堆栈峰值:通信任务-370,数据管理器-240,诊断-380,看门狗-122,

 2.  然后 ,我们在调试模式下运行设备 ,并在  Data Manager的2个位置保留断点 ,并观察所有任务的堆栈峰值。

堆栈峰值:通信任务-370/470,数据管理器-240,诊断-380,看门狗-122,

澄清点:

1.如果我们在Data Manager中保留了断点,并在自由运行模式下运行通信任务。 为什么通信任务,堆栈峰值达到470字节?

2.邮箱还 使用分配 给任务的堆栈?

它是分配的堆栈最大大小的90 %。 我们想了解这种行为的原因。

请提供 有关行为的有价值的输入,以临时应对此情况,防止固件出现意外行为。

谢谢

Manoj

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

    您好,Manoj,

    您如何测量堆栈使用情况? 我认为设置断点和手动查看堆栈使用情况并不能很好地表示最大堆栈使用量。

    在CCS中有一种简单的方法可以在不使用断点的情况下执行此操作。 TI RTOS Kernal用户指南的第7.5 3节 说明了如何实现这一目标。 您能否使用此方法来衡量您的最大堆栈使用率,如果您有任何疑问,请告诉我?

    此致,  
    Caleb Overbay

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

    您是否能够解决此问题? 如果是,您是否可以将您的解决方案发布到论坛,以帮助可能遇到相同问题的其他人?

    此致,
    Caleb Overbay