工具/软件:Code Composer Studio
我们在项目中部署了TI DSP 6.2 零代码编辑器。 以前的CC版本是3.3。
我们发现malloc和堆分配存在问题。 例如,malloc调用无法获得内存分配,因为堆都是保留的。 我们知道堆没有过度分配。
是否存在影响malloc和堆分配及释放的新CC 6.2 的标志或选项。
由于某种原因,如果malloc失败并重新加载DSP SW,为什么DSP会进入相同的重新加载循环,即使是使用全新的SW重新加载。
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.
工具/软件:Code Composer Studio
我们在项目中部署了TI DSP 6.2 零代码编辑器。 以前的CC版本是3.3。
我们发现malloc和堆分配存在问题。 例如,malloc调用无法获得内存分配,因为堆都是保留的。 我们知道堆没有过度分配。
是否存在影响malloc和堆分配及释放的新CC 6.2 的标志或选项。
由于某种原因,如果malloc失败并重新加载DSP SW,为什么DSP会进入相同的重新加载循环,即使是使用全新的SW重新加载。
Khaldun Karazoun 说:是否存在影响malloc和堆分配及释放的新CC 6.2 的标志或选项。[/QUOT]
您可以使用选项--heap_size更改堆的大小。 在CCS中,右键单击项目名称,然后选择“显示生成设置”。 在左侧类似结构的树中,浏览到Build | C6000 Linker | Basic Options。 右侧有一个文本框,您可以在其中输入--heap_size的值。
谢谢,此致,
-George
archeologist 说:
我甚至无法猜测为什么"全新软件重新加载"会受到影响。
[/引述]
我想猜一猜。 在全新重新加载过程中显示错误行为的典型错误是访问单化内存(通常在堆栈上)。 如果设备电源关闭一段时间,内存内容将非常容易预测,但如果重新加载程序和/或设备仅短暂关闭,内存将保留其当前内容, 如果您的程序依赖于一些未初始化的值,它可能会立即再次崩溃。
不过,这只是一个猜测。
Markus