公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager


我目前使用的是 TC297 芯片,它有 4 个 CPU,但我只使用 CPU0 进行程序处理。

现在我遇到了一个问题。 当我编译程序时,出现错误:
******************************************************************************************************************************************************************************************************************************************************************************


ld 返回了 1 个退出状态

makefile: 148 目标 “xxx.elf” 的配方
制作失败:*** [xxx.elf] 错误 1
(xxx 意思是我的项目名称)
********************************************************************************************

1。 所以我认为这是由程序中的堆栈溢出引起的。 我的猜测正确吗?
2。如果我的猜测是正确的,我能否通过增加 SRAM 区域来解决这个问题?
也就是说,将 0x7000 000 改为 0x601C 3000

maps.png
3。 在哪里修改SRAM的内存分配? 我应该修改配置文件,在哪里可以找到它,还是应该通过 IDE 对其进行修改?

感谢支持我的工程师,祝你一切顺利!

0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

首先,您应该检查 “.heap” 部分的大小,并确定代码的哪些部分正在使用堆中的内存。 然后,您可以修改链接器脚本 (.lsl) 以增加堆的大小或将其分配到不同的内存位置。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

非常感谢你的回答!

先决条件:
我几乎从未在整个代码中使用过 malloc 函数,而且代码以前可以正常运行。
现在,其他同事已经修改了几个模块,但如果不使用 malloc,他们就会有新的局部变量和全局变量。

1。我的猜测是,这可能会影响SRAM内存,并不完全是堆造成的。 我猜HighTec编译提示的错误不一定是正确的。 也许是因为堆栈空间?

2。所以我认为你增加堆空间是正确的。 你能告诉我它是哪个.lsl 文件吗,因为有许多.lsl 我的项目中的文件。我需要如何修改里面的内容? 请给我举个例子。

0 点赞