iar make报错,另外一个同样的工程文件没有报错,这一个报错
错误如下图
各位,有没有什么解决方法啊
bytes needed. The problem occurred while processing the segment placement command
"-Z(XDATA)XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", where at the moment of placement
the available memory ranges were "XDATA:1be7-1eff"
Reserved ranges relevant to this placement:
XDATA:1-300 XSTACK
XDATA:301-1eff XDATA_Z
BIT:0-7 BREG
BIT:80-97 SFR_AN
BIT:a0-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:d8-df SFR_AN
Error while running Linker
该回答内容部分引用GPT,GPT_Pro更好的解决问题
这里出现的报错,可能是你在编译工程时,硬件资源分配不当导致的。根据上面的报错信息可以看到,错误是因为XDATA_I(大小为0x6e4)段太长导致的,而且另外一个工程文件同样的情况没有报错,说明可能是你在编译这个工程文件时出现了问题,也可能是因为工程文件中某些参数设置不当从而导致XDATA_I段太长而报错。
针对这种情况,建议找出XDATA_I段中定义的部分内容,如数据、代码或者其它内容,然后分析这些内容是否有什么不合理之处。例如,如果是数据,可以检查这些数据是否有过大的值;如果是代码,可以看一下代码是否有重复的部分或者有多余的部分等。
此外,建议也可以尝试修改硬件相关的设置,例如尝试将XDATA_I中使用的存储器大小修改为较小的值,或者重新分配其它存储器来减少XDATA_I中存储器使用量。
最后,还可以对比另外一个工程文件和当前工程文件,看一下工程文件中哪些部分不一样,并尝试修改成另外一个工程文件的设置来看看是否能够解决问题。
如果回答有帮助,望采纳。