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.

[参考译文] LAUNCHXL-F28379D:编译过程中出现错误

Guru**** 1086020 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1310782/launchxl-f28379d-errors-during-build

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:C2000WARE

我在尝试构建我当前正在处理的项目时遇到以下错误。 我正在 CCS 内的 Resource Explorer 中使用为空 driverlib 项目示例提供的默认链接器文件。

如果我 将优化设置在4级、则不会看到这些错误、但在此阶段、我不 希望 激活4级优化。 任何低于4级的内容都可能导致错误。 4级优化处于活动状态时、运行期间会出现问题。 在执行期间、它的行为不符合预期、因此无法使用级别4优化。

****项目 BMS_Trail1的配置 CPU1_RAM 的构建****

"D:\\TI\\CCS\\utils\\bin\\gmake"-k -j 12所有-O

生成文件:"../bmsTrail1.c"
调用:C2000编译器
"d:/TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 /Users/Gautham/workspace_v12/BMS_Trail1/device /TI/C2000Ware_5_00_00_00/driverlib/f2837xd/driverlib -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff --fp_mode=relaxed --include_path="C:/Users/Gautham/workspace_v12/BMS_Trail1 /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include /Users/Gautham/workspace_v12/BMS_Trail1/CPU1_RAM/syscfg
已完成构建:"../bmsTrail1.c"

建立目标:"bms_Trail1.out"
调用:C2000链接器
"d:/TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -opoff --fp_mode=relaxed --advice /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib:performance=all /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include /device/F2837xD_CodeStartBranch.obj /device/device.obj /TI/C2000Ware_5_00_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib

"../2837xD_RAM_lnk_cpu1.cmd"、第80行:错误#10099-D:程序将无法装入可用内存、或该段包含的调用站点需要无法为此段生成的 trampoline。 对齐/分块放置在".text"大小0x3664 page 0的段失败。 可用存储器范围:
RAMD0大小:0x800未使用:0x0最大孔数:0x0
RAMLS0大小:0x800未使用:0x0最大空洞:0x0
RAMLS1大小:0x800未使用:0x0最大空洞:0x0
RAMLS2大小:0x800未使用:0x0最大空洞:0x0
RAMLS3大小:0x800未使用:0x0最大空洞:0x0
RAMLS4大小:0x800未使用:0x0最大空洞:0x0
错误#10010:链接期间遇到错误;未生成"BMS_Trail1.out"

>>编译失败
Makefile:142:目标"BMS_Trail1.out"的配方失败
gmake[1]:***[BMS_Trail1.Out]错误1
Makefiles:138:目标"全部"的食谱失败
gmake:***[全部]错误2

****构建完成****

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在扩展上述错误时、我还看到了以下这些错误、分别针对 sysmem、data 和 BSS

    ****项目 empty_driverlib_project 的配置 CPU1_RAM 构建****

    "D:\\TI\\CCS\\utils\\bin\\gmake"-k -j 12所有-O

    生成文件:"../empty_driverlib_main.c"
    调用:C2000编译器
    "d:/TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 /Users/Gautham/workspace_v12/empty_driverlib_project/device /TI/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff --include_path="C:/Users/Gautham/workspace_v12/empty_driverlib_project /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include /Users/Gautham/workspace_v12/empty_driverlib_project/CPU1_RAM/syscfg
    "../empty_driverlib_main.c"、第206行(col. 28):建议#2614-D:(性能)使用--fp_mode=relaxed 以启用对 FP 除法的 TMU 硬件支持。
    已完成构建:"../empty_driverlib_main.c"

    构建目标:"empty_driverlib_project.out"
    调用:C2000链接器
    "d:/TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib /device/F2837xD_CodeStartBranch.obj -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -opoff /TI/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include --define=debug -- define=cpU1 --空_ms=10063 /device/device.obj /TI/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib

    警告#10210-D:创建默认大小为0x400的".sysmem"段;使用-heap 选项更改默认大小
    "../2837xD_RAM_lnk_cpu1.cmd"、第80行:错误#10099-D:程序将无法装入可用内存、或该段包含的调用站点需要无法为此段生成的 trampoline。 对齐/分块放置在大小为0x368e 的段".text"的页面0中失败。 可用存储器范围:
    RAMD0大小:0x800未使用:0x0最大孔数:0x0
    RAMLS0大小:0x800未使用:0x0最大空洞:0x0
    RAMLS1大小:0x800未使用:0x0最大空洞:0x0
    RAMLS2大小:0x800未使用:0x0最大空洞:0x0
    RAMLS3大小:0x800未使用:0x0最大空洞:0x0
    RAMLS4大小:0x800未使用:0x0最大空洞:0x0
    "../2837xD_RAM_lnk_cpu1.cmd"、第92行:错误#10099-D:程序将无法装入可用内存、或该段包含的调用站点需要无法为此段生成的 trampoline。 针对".sysmem"大小0x400的段执行对齐/分块放置失败。 可用存储器范围:
    RAMLS5大小:0x800未使用:0x98最大孔:0x98
    "../2837xD_RAM_lnk_cpu1.cmd"、第91行:错误#10099-D:程序将无法装入可用内存、或该段包含的调用站点需要无法为此段生成的 trampoline。 对".data"大小为0x122页1的对齐/分块运行放置失败。 可用存储器范围:
    RAMLS5大小:0x800未使用:0x98最大孔:0x98
    "../2837xD_RAM_lnk_cpu1.cmd"、第87行:错误#10099-D:程序将无法装入可用内存、或该段包含的调用站点需要无法为此段生成的 trampoline。 针对大小为0x247的段".bss"的页1运行对齐/分块放置失败。 可用存储器范围:
    RAMLS5大小:0x800未使用:0x98最大孔:0x98
    错误#10010:链接期间遇到错误;未生成"empty_driverlib_project.out"

    >>编译失败
    Makefile:142:目标"empty_driverlib_project.out"的食谱失败
    gmake[1]:***[empty_driverlib_project.out]错误1
    Makefiles:138:目标"全部"的食谱失败
    gmake:***[全部]错误2

    ****构建完成****

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gauth 您好、

    错误消息应该是显而易见的、没有为程序的指定段分配足够的 RAM。 您将需要为这些特定部分使用更多的 RAM。 如果您看看.text 段使用 RAMD0、RAMLS0-4的方式、应该会有一个如何执行此操作的语法示例。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Omer:

    感谢您的响应、如何知道要添加/使用哪些段、以及是否需要增加堆大小等。 是否有任何可用资源来获取此信息? 对我来说、当我尝试使用闪存时、运行时的执行会被冻结、我无法准确诊断正在发生的情况。  
    我能够通过使用 RAMGS、然后替换不同的部分、再在引用 RAMGS 的情况下更改其他部分(在 SDFM 示例定义的末尾)来解决这个问题。  

    但是、我仍然不能完全理解如何计算分布、以及可以使用哪些段来关联哪个存储器分区等。  

    谢谢
    高特姆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的答复,如何知道要添加/使用哪些部分,以及是否需要增加堆大小等

    可以使用任何未使用的段、我建议使用  连续的存储器位置(存储器地址彼此后面)。 遗憾的是、除非在运行时发现问题、否则无法知道是否需要增加堆/堆栈大小、因为编译器无法检测到这一点。

    对于我来说,当我尝试使用闪存时,运行时的执行被冻结,我无法准确诊断正在发生的情况。  
    我能够通过使用 RAMGS、然后替换不同的部分、再在引用 RAMGS 的情况下更改其他部分(在 SDFM 示例定义的末尾)来解决这个问题。  [/报价]

    代码在哪里被冻结? 您是否确保除了更改链接器命令文件之外还更改了编译配置? 您是修改了给定的链接器命令文件、还是使用了为项目提供的闪存链接器命令文件?

    然而,我仍然不能完全理解如何计算分发,以及可以使用哪些部分来关联哪个内存分区等。  [/报价]

    执行此操作的语法应明确无误 、要选择要使用哪些存储器段、您可以查看 "Linker Command File" 页面并使用该页面来确定应使用哪种类型的 RAM。 但是、示例提供的默认链接器命令文件应该足以说明这一点。 计算需要多少 RAM 的分布图由您自己的 项目决定、遗憾的是、每个项目的分布图都不尽相同。 您可以使用 Memory Allocation 视图来指导您设置全局变量、程序代码等所需的内存大小。

    [/quote]