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/CC2640R2F:ICall 任务堆栈大小

Guru**** 2589275 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/602889/rtos-cc2640r2f-icall-task-stack-size

器件型号:CC2640R2F

工具/软件:TI-RTOS

与此论坛上的许多人一样、我一直在为我们基于外设的简单应用寻找更多 RAM。 我看到大块的一个位置是 iCall 任务的1000字节栈、它是使用 iCall_Addrs.h 中定义的栈大小创建的:

#define ICALL_TASK_STACK_Sizes{1000}

由于 Task_create()被用来实例化这个任务、我假设/猜测1000个字节随后从 app_ble.cfg 中的 RTOS 堆中分配:

/*

 *为 BIOS 指定默认堆大小。

 *

if (typeof no_rom =='undefined'||(typeof no_rom!='undefined'&& no_ROM = 0))

// BIOS.heapSize = 1668;

当我使用 ROV 检查堆栈利用率时、我可以看到 ICall 任务堆栈峰值大约为528。 我们的应用是一个非常基本的外设、只有一个连接和几个具有一些特征的服务。 我们使用的是堆栈库。 在什么情况下 iCall 的堆栈使用量会增加? 您认为我可以安全地减小堆栈的大小(以及 BIOS.heapSize)吗? 很明显、我可以按原样尝试、它可能会起作用、但我想知道风险是什么。

感谢您的帮助!

Dave

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

    你明白了! 我相信,社工局和健康工作者亦会从这方面汲取,所以也要记住这点。

    要进行分析、您可能只需拥有尽可能多的中断(理论上、根据您的应用)并查看峰值变化量。

    您说的对、它可能会起作用-请注意、如果您使用的是 IAR、您实际上需要使用链接器文件来设置 BIOS 堆、而不是 RTOS 配置文件

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

    谢谢、Rebel。 我将尝试它、看看它是否起作用。

    Dave