你们好!
公司项目测试中发现系统堆栈溢出的错误,经过各种调查实验发现,通过ble_app.cfg调整stack size后,heap size也会随之变化,比如stack size变大,heap size就变小,一共是2307,
谢谢!
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.
你们好!
公司项目测试中发现系统堆栈溢出的错误,经过各种调查实验发现,通过ble_app.cfg调整stack size后,heap size也会随之变化,比如stack size变大,heap size就变小,一共是2307,
谢谢!
谢谢回答,
链接时,工具链配置为:将所有剩余的 RAM 分配为堆。 于是会出现该种情况。
请问是不是因为这样的设置导致的,heap size设为了0,
一共是2307
这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?
我这边试着调整了上图位置的heap size和stack size,0x800,查看map后,没有任何变化。请问这个设置如何反映到程序中去?谢谢!
请问是不是因为这样的设置导致的,heap size设为了0,
是的,但是在该状况下并不起作用。
这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?
请您参考该帖:e2e.ti.com/.../compiler-cc2640-can-t-adjust-stack-size-in-simple_peripheral-project
请问是不是因为这样的设置导致的,heap size设为了0,是的,但是在该状况下并不起作用。
我发现在工程预编译里面有HEAPMGR_SIZE=0这样的定义,是不是以为这个设定,堆的大小是动态的。而heap+stack的大小有是固定的,所以通过ble_app.cfg调整stack size后,heap size也会随之变化。
另外我想知道的是,heap+stack的大小可不可以设定?在哪里设定?
这个堆栈值在下面位置设定吗?可是我算出来的是2307,而这里显示的却是256?
这个是ccs7.3的环境问题?
谢谢
我发现在工程预编译里面有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)
heap+stack的大小可不可以设定?在哪里设定?
该值对应于最大可用 RAM。 设定或更改的唯一方法是换器件。
如何可以通过界面设定system stack和heap size的话,就可以任意设定heap+stack的大小了,我理解的对吗?
我们还是建议您使用链接中显示的方法。 我们认为 .cfg 会覆盖一些通过 GUI 的设置。
谢谢您的回答!
heap+stack的大小可不可以设定?在哪里设定?该值对应于最大可用 RAM。 设定或更改的唯一方法是换器件
可是我看到map文件的sram显示还有剩余空间的。