主题中讨论的其他部件:MSP430F2618
工具/软件:TI C/C++编译器
大家好!
我们有一个测试硬件接口和外部存储器设备的现有项目。 该项目设计用于使用CCS 6.1 .................................................................2和TI C++ 6.4 ................................................................11编译器开发的TMS320F2.8377万D AS目标。 二进制文件仅设计为基于RAM。 对于此项目,一切都很好,运行完美。
对于新的硬件平台,我们希望切换到TMS320F2.8379万D。 由于F2.8377万D和F2.8379万D在硬件接口方面非常相似(或相同),因此我们也希望将此测试项目用于F2.8379万D器件。 F2.8379万D在CCS 6.1 .0中不受支持,因此我们更新到了CCS 6.2 .0。 使用CCS 6.2 0时,编译器也更新到版本15.12 .3.LTS。 我们在CCS 6.2 的新CCS工作区中导入了测试项目,并复制了所有文件,因此我们拥有了项目的完整副本。 如果我们在CCS 6.2 0.0中重建测试项目,但使用TI C++ 6.4 11编译器和链接器(额外安装),一切都正常,我们将得到一个新的二进制文件。 但是,我们切换到TI C++ 15.12 .................3 LTS编译器和链接器,由于新的目标文件不适合RAM内存,我们会遇到一些链接器错误。 我不对配置或项目进行任何其他更改。 如果将原始F2.8377万D项目和新F2.8379万D项目的配置进行比较,除了所请求的编译器和链接器版本之外,所有配置都是相同的。
如果我比较两个内存分配视图, 基于TI C++ 6.4 .................................................................11 (图像1)和 TI C++ 15.12 >3 LTS (图像2)我在原始项目中看到TI库"rts2800_fpu32.lib"在多个函数中被分割,并且目标文件位于不同的内存部分。 在新编译的项目上, “rts2800_fpu32.lib”似乎被处理为单片代码块,因此无法将其放入RAM内存中。
图1
图2.
如果我比较"TI\cc3 6.1 15.12 6.4 .11\lib\src")中"unifile_locale.obj"("cpp _cpp .obj"在"TI\cc3 LTS.0\ccsv6\tools\tools\locale.lib"中 )的源代码"unifilot_locale.lib.i"("TI与6.2 .obj_localon\cc_location.obj.ob"c_"在中),则只包含"unifon.lib.lib.a"。 我尝试扩展命令文件中的内存空间,但 "ununified location.obj"也不适合。
目前我还不知道要做什么, 使用TI C++ 15.12 技术编译器3 LTS编译器和链接器进行构建的测试项目将再次适合RAM内存。 是否有人知道解决方案?
此致
Rudi
PS:作为附件,包含所有源代码和项目文件的测试项目。 (我希望它已上传。 上传过程显示已上传,但我目前看不到附件)

