TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2650MODA: stack+peak的size是在哪里设置?可以调整吗?

Part Number:CC2650MODA

你们好!

公司项目测试中发现系统堆栈溢出的错误,经过各种调查实验发现,通过ble_app.cfg调整stack size后,heap size也会随之变化,比如stack size变大,heap size就变小,一共是2307,

谢谢!

Cherry Zhou:

您好我们已收到您的问题,预计将于24小时内给您答复。谢谢!

,

Cherry Zhou:

链接时,工具链配置为:将所有剩余的 RAM 分配为堆。 于是会出现该种情况。

虽然可以修改,但是我们不建议您这样做,修改后不会有更大的堆。

希望以上回答对您有所帮助,如有其他问题请随时联系我们。

,

fei liu:

谢谢回答,

Cherry Zhou 说:链接时,工具链配置为:将所有剩余的 RAM 分配为堆。 于是会出现该种情况。

请问是不是因为这样的设置导致的,heap size设为了0,

fei liu 说:一共是2307

这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?

我这边试着调整了上图位置的heap size和stack size,0x800,查看map后,没有任何变化。请问这个设置如何反映到程序中去?谢谢!

,

Cherry Zhou:

好的我会再帮您跟进给工程师,以及您提出的另一个问题,https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/210526/cc2650moda-ccs-rov-stackpeak,请问是否和该贴相关?

,

fei liu:

谢谢,相关的。

补充一下,我用的是 ARM compiler/linker.

,

Cherry Zhou:

fei liu 说:请问是不是因为这样的设置导致的,heap size设为了0,

是的,但是在该状况下并不起作用。

fei liu 说:这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?

请您参考该帖:e2e.ti.com/…/compiler-cc2640-can-t-adjust-stack-size-in-simple_peripheral-project

,

fei liu:

Cherry Zhou 说:

fei liu 说:请问是不是因为这样的设置导致的,heap size设为了0,

是的,但是在该状况下并不起作用。

我发现在工程预编译里面有HEAPMGR_SIZE=0这样的定义,是不是以为这个设定,堆的大小是动态的。而heap+stack的大小有是固定的,所以通过ble_app.cfg调整stack size后,heap size也会随之变化。

另外我想知道的是,heap+stack的大小可不可以设定?在哪里设定?

Cherry Zhou 说:

fei liu 说:这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?

请您参考该帖:https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1048354/dra829v-when-saving-under-uboot-reporting-error-issue

这个是ccs7.3的环境问题?

谢谢

,

Cherry Zhou:

抱歉,请您查看更新后的链接是否有帮助。

,

fei liu:

您好!

我发现在工程预编译里面有HEAPMGR_SIZE=0这样的定义,是不是以为这个设定,堆的大小是动态的。而heap+stack的大小有是固定的,所以通过ble_app.cfg调整stack size后,heap size也会随之变化。

另外我想知道的是,heap+stack的大小可不可以设定?在哪里设定?

您提供的链接,如何可以通过界面设定system stack和heap size的话,就可以任意设定heap+stack的大小了,我理解的对吗?

,

Cherry Zhou:

fei liu 说:我发现在工程预编译里面有HEAPMGR_SIZE=0这样的定义,是不是以为这个设定,堆的大小是动态的。而heap+stack的大小有是固定的,所以通过ble_app.cfg调整stack size后,heap size也会随之变化。

请注意我们之前说的是:将 0 字节分配到堆会导致问题。

就.cfg 文件中的符号 HEAPMGR_SIZE ,您的理解是正确的。您可以参阅以下信息:

"HEAPMGR_SIZE value of  zero (0) autosizes the heap to a size equal to the amount of available free RAM not allocated by the linker. By default,the simple_peripheral project uses the autosize feature." (cf. https://www.ti.com/lit/swru393 §3.11.14)

fei liu 说:heap+stack的大小可不可以设定?在哪里设定?

该值对应于最大可用 RAM。 设定或更改的唯一方法是换器件。

fei liu 说:如何可以通过界面设定system stack和heap size的话,就可以任意设定heap+stack的大小了,我理解的对吗?

我们还是建议您使用链接中显示的方法。 我们认为 .cfg 会覆盖一些通过 GUI 的设置。

,

fei liu:

谢谢您的回答!

Cherry Zhou 说:

fei liu 说:heap+stack的大小可不可以设定?在哪里设定?

该值对应于最大可用 RAM。 设定或更改的唯一方法是换器件

可是我看到map文件的sram显示还有剩余空间的。

,

Cherry Zhou:

好的收到您的问题,已帮您跟进,如有答复将尽快回复您。

,

Cherry Zhou:

堆在剩余的 RAM 上分配,可能不会出现在映射文件中。

您可以查看linker command file链接器命令文件 (.cmd) 以了解有关 RAM 分配方式的更多详细信息。

赞(0)
未经允许不得转载:TI中文支持网 » CC2650MODA: stack+peak的size是在哪里设置?可以调整吗?
分享到: 更多 (0)