请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320C6678 “Thread:SysBIOS”中讨论的其它部件
工具/软件:Code Composer Studio
现象:
- 在BareMetal项目中,链接器可以使用参数"-heap HEAPSIZE"中指定的大小为堆正确分配空间。 这里的大小可以设置为最大值0x7FFFFFF8,我可以在.map文件中看到分配信息。
- 在SysBIOS项目中,当我使用'bios.heapSize = 0x2000万等代码创建默认堆大小>= 0x2000万 (512MiB)时,我无法在最终输出的可执行文件的.map文件中找到堆空间分配。 使用的DDR3大小为0x0。
- 在SysBIOS项目中,当我缩小堆大小(如0x1FFFFFF8)时,我可以在.map文件中看到堆部分的分配。
- 已尝试相同的C6000 CGT 8.1 3和7.4 .21。
- 已尝试相同的SysBIOS 6.45 / 6.50。
我已查看以下链接:
在该链接中,它指出此问题是由链接程序的错误导致的,该错误无法为非常大的数组分配空间。
问题:
- 已经4年了,链接器的错误是否已修复?
- 似乎链接程序可以正确处理参数'-heap',所以SysBIOS是否有任何解决方法可以使用链接程序的参数'-heap'来分配缺省SysBIOS堆? 因为默认情况下,SysBIOS在生成的linker.cmd文件中设置'-heap 0x0'。
