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.

[参考译文] TMS320F2806:#16000:目标文件具有不兼容的格式

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats

器件型号:TMS320F2806
主题中讨论的其他器件:C2000WARE

您好!

我的项目在 CCS 10.3.1上运行、

突然、我遇到这个误差、

fatal error #16000: object files have incompatible formats
   ("C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.4.LTS/lib/rts2800_fpu32
   .lib<boot28.asm.obj>" = TI-COFF, "./DEMO.obj" = ELF)

我在网上搜索时获得了2个信息  

1. project>properties>Generation>In Project 选项卡中的项目选项卡和工具链选择 eabi (ELF)作为输出格式

2.从 Debug 文件夹中删除所有.obj 文件、然后再次编译工程。

现在看一下错误控制台、rts2800_fpu32.lib 处于 TI-COFF 模式、但 project.obj 文件处于 ELF 模式。

让我知道如何解决这个问题。

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

    在链接器设置中、如果将"rts2800_fpu32.lib"替换为"libc.a"、编译器将允许根据您的构建选项选择合适的 RTS 库版本。

    坚持使用 COFF 可能更简单、但如果您确实想将其全部迁移到 ELF、我们在这里提供了一个指南、其中可能会说明您可能遇到的其他问题:

    https://software-dl.ti.com/ccs/esd/documents/C2000_c28x_migration_from_coff_to_eabi.html

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3825099 #3825099"]

    在链接器设置中、如果将"rts2800_fpu32.lib"替换为"libc.a"、编译器将允许根据您的构建选项选择合适的 RTS 库版本。

    坚持使用 COFF 可能更简单、但如果您确实想将其全部迁移到 ELF、我们在这里提供了一个指南、其中可能会说明您可能遇到的其他问题:

    [/报价]

    尊敬的杜威爵士:

    非常感谢您在此处回复。 将 "rts2800_fpu32.lib"替换为"libc.a"后、控制台提示内存存在不同的问题、

    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. run placement with alignment/blocking fails for section
       "ClaDataRam2" size 0x32apage 1.  Available memory ranges:
       DEV_EMU      size: 0x105        unused: 0x101        max hole: 0x101
       SYS_PWR_CTL   size: 0x3          unused: 0x3          max hole: 0x3
       FLASH_REGS   size: 0x60         unused: 0x58         max hole: 0x58
       CSM          size: 0x20         unused: 0x10         max hole: 0x10
       ADC_RESULT   size: 0x20         unused: 0x10         max hole: 0x10
       CPU_TIMER0   size: 0x8          unused: 0x0          max hole: 0x0
       CPU_TIMER1   size: 0x8          unused: 0x0          max hole: 0x0
       CPU_TIMER2   size: 0x8          unused: 0x0          max hole: 0x0
       PIE_CTRL     size: 0x20         unused: 0x6          max hole: 0x6
       PIE_VECT     size: 0x100        unused: 0x0          max hole: 0x0
       DMA          size: 0x200        unused: 0x200        max hole: 0x200
       CLA1         size: 0x80         unused: 0x40         max hole: 0x40
       USB0         size: 0x1000       unused: 0x2cd        max hole: 0x2cc
       McBSPA       size: 0x40         unused: 0x40         max hole: 0x40
       ECANA        size: 0x40         unused: 0xc          max hole: 0xc
       ECANA_LAM    size: 0x40         unused: 0x40         max hole: 0x40
       ECANA_MOTS   size: 0x40         unused: 0x40         max hole: 0x40
       ECANA_MOTO   size: 0x40         unused: 0x40         max hole: 0x40
       ECANA_MBOX   size: 0x100        unused: 0x0          max hole: 0x0
       COMP1        size: 0x20         unused: 0x20         max hole: 0x20
       COMP2        size: 0x20         unused: 0x20         max hole: 0x20
       COMP3        size: 0x20         unused: 0x20         max hole: 0x20
       EPWM1        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM2        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM3        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM4        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM5        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM6        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM7        size: 0x40         unused: 0x0          max hole: 0x0
       EPWM8        size: 0x40         unused: 0x40         max hole: 0x40
       ECAP1        size: 0x20         unused: 0x20         max hole: 0x20
       ECAP2        size: 0x20         unused: 0x20         max hole: 0x20
       ECAP3        size: 0x20         unused: 0x20         max hole: 0x20
       HRCAP1       size: 0x20         unused: 0x20         max hole: 0x20
       HRCAP2       size: 0x20         unused: 0x20         max hole: 0x20
       EQEP1        size: 0x40         unused: 0x40         max hole: 0x40
       EQEP2        size: 0x40         unused: 0x40         max hole: 0x40
       HRCAP3       size: 0x20         unused: 0x20         max hole: 0x20
       HRCAP4       size: 0x20         unused: 0x20         max hole: 0x20
       GPIOCTRL     size: 0x40         unused: 0x0          max hole: 0x0
       GPIODAT      size: 0x20         unused: 0x0          max hole: 0x0
       GPIOINT      size: 0x20         unused: 0x0          max hole: 0x0
       SYSTEM       size: 0x30         unused: 0x0          max hole: 0x0
       SPIA         size: 0x10         unused: 0x0          max hole: 0x0
       SCIA         size: 0x10         unused: 0x0          max hole: 0x0
       NMIINTRUPT   size: 0x10         unused: 0x10         max hole: 0x10
       XINTRUPT     size: 0x10         unused: 0x0          max hole: 0x0
       ADC          size: 0x80         unused: 0x30         max hole: 0x30
       SPIB         size: 0x10         unused: 0x10         max hole: 0x10
       SCIB         size: 0x10         unused: 0x0          max hole: 0x0
       I2CA         size: 0x40         unused: 0x40         max hole: 0x40
       PARTID       size: 0x1          unused: 0x1          max hole: 0x1
       CSM_PWL      size: 0x8          unused: 0x0          max hole: 0x0       
    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. run placement with alignment/blocking fails for section
       "CLA1mathTables" size 0x2d0page 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. run placement with alignment/blocking fails for section
       ".data" size 0x56page 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. placement with alignment/blocking fails for section ".switch"
       size 0x42page 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. placement with alignment/blocking fails for section
       ".const_cla" size 0xcpage 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section
       contains a call site that requires a trampoline that can't be generated for
       this section. placement with alignment/blocking fails for section ".cinit"
       size 0x399page 0.  Available memory ranges:
     
     
     undefined          first referenced    
      symbol                in file         
     ---------          ----------------    
     ADCINT1_ISR        ./F2806x_PieVect.obj
     ADCINT2_ISR        ./F2806x_PieVect.obj
     ADCINT3_ISR        ./F2806x_PieVect.obj
     ADCINT4_ISR        ./F2806x_PieVect.obj
     ADCINT5_ISR        ./F2806x_PieVect.obj
     ADCINT6_ISR        ./F2806x_PieVect.obj
     ADCINT7_ISR        ./F2806x_PieVect.obj
     ADCINT8_ISR        ./F2806x_PieVect.obj
     ADCINT9_ISR        ./F2806x_PieVect.obj
     CLA1_INT1_ISR      ./F2806x_PieVect.obj
     CLA1_INT2_ISR      ./F2806x_PieVect.obj
     CLA1_INT3_ISR      ./F2806x_PieVect.obj
     CLA1_INT4_ISR      ./F2806x_PieVect.obj
     CLA1_INT5_ISR      ./F2806x_PieVect.obj
     CLA1_INT6_ISR      ./F2806x_PieVect.obj
     CLA1_INT7_ISR      ./F2806x_PieVect.obj
     CLA1_INT8_ISR      ./F2806x_PieVect.obj
     Cla1funcsLoadSize  ./CLA.obj           
     Cla1funcsLoadStart ./CLA.obj           
     Cla1funcsRunStart  ./CLA.obj           
     ConfigCpuTimer     ./ADC.obj           
     CpuTimer0          ./Main_Timer.obj    
     CpuTimer1          ./Main_Timer.obj    
     CpuTimer2          ./ADC.obj           
     DATALOG_ISR        ./F2806x_PieVect.obj
     DINTCH1_ISR        ./F2806x_PieVect.obj
     DINTCH2_ISR        ./F2806x_PieVect.obj
     DINTCH3_ISR        ./F2806x_PieVect.obj
     DINTCH4_ISR        ./F2806x_PieVect.obj
     DINTCH5_ISR        ./F2806x_PieVect.obj
     DINTCH6_ISR        ./F2806x_PieVect.obj
     DSP28x_usDelay     ./ADC.obj           
     ECAN0INTA_ISR      ./F2806x_PieVect.obj
     ECAN1INTA_ISR      ./F2806x_PieVect.obj
     ECAP1_INT_ISR      ./F2806x_PieVect.obj
     ECAP2_INT_ISR      ./F2806x_PieVect.obj
     ECAP3_INT_ISR      ./F2806x_PieVect.obj
     EMUINT_ISR         ./F2806x_PieVect.obj
     EPWM1_INT_ISR      ./F2806x_PieVect.obj
     EPWM1_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM2_INT_ISR      ./F2806x_PieVect.obj
     EPWM2_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM3_INT_ISR      ./F2806x_PieVect.obj
     EPWM3_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM4_INT_ISR      ./F2806x_PieVect.obj
     EPWM4_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM5_INT_ISR      ./F2806x_PieVect.obj
     EPWM5_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM6_INT_ISR      ./F2806x_PieVect.obj
     EPWM6_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM7_INT_ISR      ./F2806x_PieVect.obj
     EPWM7_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM8_INT_ISR      ./F2806x_PieVect.obj
     EPWM8_TZINT_ISR    ./F2806x_PieVect.obj
     EQEP1_INT_ISR      ./F2806x_PieVect.obj
     EQEP2_INT_ISR      ./F2806x_PieVect.obj
     HRCAP1_INT_ISR     ./F2806x_PieVect.obj
     HRCAP2_INT_ISR     ./F2806x_PieVect.obj
     HRCAP3_INT_ISR     ./F2806x_PieVect.obj
     HRCAP4_INT_ISR     ./F2806x_PieVect.obj
     I2CINT1A_ISR       ./F2806x_PieVect.obj
     I2CINT2A_ISR       ./F2806x_PieVect.obj
     ILLEGAL_ISR        ./F2806x_PieVect.obj
     INT13_ISR          ./F2806x_PieVect.obj
     INT14_ISR          ./F2806x_PieVect.obj
     LUF_ISR            ./F2806x_PieVect.obj
     LVF_ISR            ./F2806x_PieVect.obj
     MRINTA_ISR         ./F2806x_PieVect.obj
     MXINTA_ISR         ./F2806x_PieVect.obj
     NMI_ISR            ./F2806x_PieVect.obj
     PIE_RESERVED       ./F2806x_PieVect.obj
     RTOSINT_ISR        ./F2806x_PieVect.obj
     RamfuncsLoadEnd    ./main.obj          
     RamfuncsLoadStart  ./main.obj          
     RamfuncsRunStart   ./main.obj          
     SCIRXINTA_ISR      ./F2806x_PieVect.obj
     SCIRXINTB_ISR      ./F2806x_PieVect.obj
     SCITXINTA_ISR      ./F2806x_PieVect.obj
     SCITXINTB_ISR      ./F2806x_PieVect.obj
     SFO                ./PWM.obj           
     SPIRXINTA_ISR      ./F2806x_PieVect.obj
     SPIRXINTB_ISR      ./F2806x_PieVect.obj
     SPITXINTA_ISR      ./F2806x_PieVect.obj
     TINT0_ISR          ./F2806x_PieVect.obj
     USB0_INT_ISR       ./F2806x_PieVect.obj
     USER10_ISR         ./F2806x_PieVect.obj
     USER11_ISR         ./F2806x_PieVect.obj
     USER12_ISR         ./F2806x_PieVect.obj
     USER1_ISR          ./F2806x_PieVect.obj
     USER2_ISR          ./F2806x_PieVect.obj
     USER3_ISR          ./F2806x_PieVect.obj
     USER4_ISR          ./F2806x_PieVect.obj
     USER5_ISR          ./F2806x_PieVect.obj
     USER6_ISR          ./F2806x_PieVect.obj
     USER7_ISR          ./F2806x_PieVect.obj
     USER8_ISR          ./F2806x_PieVect.obj
     USER9_ISR          ./F2806x_PieVect.obj
     WAKEINT_ISR        ./F2806x_PieVect.obj
     XINT1_ISR          ./F2806x_PieVect.obj
     XINT2_ISR          ./F2806x_PieVect.obj
     XINT3_ISR          ./F2806x_PieVect.obj
     rsvd_ISR           ./F2806x_PieVect.obj
     
     

    此错误来自 错误#10234-D:未解析的符号仍然存在。

    TI 说:

    您可以通过以下两种方式之一将所需的库添加到项目中:
      Project Properties→Build→Linker→File Search Path 下

    • 在"--library"选项或中直接指定完整路径和库名称
    • 在"--search_path"选项中指定路径、并在"--library"选项中指定库名称

     根据此问题、不确定应添加哪个库。

    使用 Look Me 文件搜索路径、

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

    您在项目中包含了哪些链接器命令文件? 奇怪的是、控制台输出中显示的"可用存储器范围"列表未显示任何 RAM 或闪存。 您是否有在项目中定义它们的链接器命令文件? 如果它已经在您的项目中、您可能只需要稍微移动部分、使其适合存储器。 此处提供了有关编辑链接器命令文件的良好指南:
    https://software-dl.ti.com/ccs/esd/documents/c2000_c28x-compiler-understanding-linking.html

    根据缺失符号的名称判断、您似乎还缺少一些文件、例如 F2806x_DefaultIsr.c、F2806x_usDelay.asm 和 F2806x_CpuTimers.c。 尝试将这些内容添加到您的项目中、看看它是否有用。 导入一些示例项目并将其与您的项目进行比较以尝试查看缺少的项目可能会有所帮助。

    libc.a 位于${CG_TOOL_ROOT}/lib 中、因此您不需要添加完整路径、只需"libc.a"即可。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3825484 #3825484">您在项目中包含了哪些链接器命令文件? 奇怪的是、控制台输出中显示的"可用存储器范围"列表未显示任何 RAM 或闪存。 您是否有在项目中定义它们的链接器命令文件? 如果它已经在您的项目中、您可能只需要稍微移动部分、使其适合存储器。 此处提供了有关编辑链接器命令文件的良好指南:
    https://software-dl.ti.com/ccs/esd/documents/c2000_c28x-compiler-understanding-linking.html

    先生,说得好。 我想到了这一点。 当我遇到 错误时,  下拉列表中的“项目”>“属性”>“链接器”命令文件中有 F2806x_Headers_nonBIOS.cmd 文件。 现在我已经将其更改为 28069_RAM_lnk.cmd。

    现在、项目错误显示" 警告#10440-D:创建不带段的输出段".sysmem "
    规格。 有关此部分的其他信息、请参阅
    《C2000从 COFF 迁移到 EABI》指南、位于 software-dl.ti.com/.../C2000_c28x_migration_from_coff_
    TO_eabi.html'

    更像、  

    "../28069_RAM_lnk.cmd", line 121: error #10099-D: program will not fit into
       available memory, or the section contains a call site that requires a
       trampoline that can't be generated for this section. placement with
       alignment/blocking fails for section ".text" size 0x5098page 0.  Available
       memory ranges

    让我进入您的链接和警告链接。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3825484 #3825484">根据缺少的符号名称判断、您似乎还缺少一些文件、例如 F2806x_DefaultIsr.c、F2806x_usDelay.asm 和 F2806x_CpuTimers.c。 尝试将这些内容添加到您的项目中、看看它是否有用。 导入一些示例项目并将其与您的项目进行比较以尝试查看缺失的内容可能会有所帮助。

     F2806x_usDelay.asm 正在我 的项目树中退出、让我添加您提到的文件、我记得在开始时我删除了这些文件、因为! 符号会出现 在这些上、其中一些是我添加的。

    您不是指从 C:\F2806x_headers\include 添加? 或  C:\F2806x_common\include  

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3825484 #3825484"]

    libc.a 位于${CG_TOOL_ROOT}/lib 中、因此您不需要添加完整路径、只需"libc.a"即可。

    惠特尼

    [/报价]

    我明白了。 让我们将其删除。 我会再来的。

     

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

    尊敬的杜威爵士:

    在项目树中添加这些文件后、错误会降至180至104!

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3825484 #3825484"]是否有在项目中定义它们的链接器命令文件? 如果它已经在您的项目中、您可能只需要稍微移动部分、使其适合存储器。 此处提供了有关编辑链接器命令文件的良好指南:

    不确定如何解决此问题、以前的用户在调试此代码时没有遇到任何问题。 我将介绍您提供的链接和控制台建议。   28069_RAM_lnk.cmd 文件现在位于链接器.cmd 选项中。  

    如果我们看第一个问题、  

    warning #10373-D: library "../IQmath.lib" contains TI-COFF object files which

    这可能是添加 IQmath.lib 时出现的、您希望我将其删除吗?

    2.  

    warning #10440-D: creating output section ".bss" without a SECTIONS

    这是否意味着要编辑.cmd 文件?  从 COFF 到 EABI 的 C2000迁移指明了某种方向。 我有这些文件  

    MS320C28x 优化 C/C++编译器用户指南(SPRU514版本 R 或更高版本)
    TMS320C28x 汇编语言工具用户指南(SPRU513版本 R 或更高版本)

    目前,我的项目>属性>C2000compmailer>标记摘要显示

    --cla_support=cla0 --float_support=fpu64 -O2 --opt_for_speed=3 --fp_mode=relaxed --fp_reassoc=off --include_path="C:/F2806x_common/include" --include_path="C:/F2806x_common/lib" --include_path="C:/F2806x_headers/F2806x_headers/include" --advice:performance=none -g --diag_warning=225 --display_error_number --abi=eabi

    你认为项目财产组织得不好吗?  

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

    1.如果不使用 IQMath,可以将其删除。 不过、如果确实需要、则需要 EABI 版本的库。 您使用的是什么版本的 C2000Ware? 我知道较新版本的 C2000Ware 确实提供了 EABI 版本、但某些较旧版本可能不提供、因此可能会解释错误。

    2.是的、这需要更改链接器命令文件。 在迁移指南中、查看"Linker Command File Changes"部分和有关如何重命名某些部分的部分。 在本例中、您可能只需在.cmd 文件中细小".ebss"、然后可能会看到".bss"

    我对编译器标志的唯一评论是、此器件不支持"-float_support=fpu64"。 F2806x 没有 FPU64硬件。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3826466 #3826466"]。 如果您不使用 IQMath、则可以将其删除。 不过、如果确实需要、则需要 EABI 版本的库。 您使用的是什么版本的 C2000Ware? 我知道较新版本的 C2000Ware 确实提供了 EABI 版本、但某些较旧版本可能不提供、因此可能会解释错误。

    我 在代码中具有 PI 和 PID 控制、 Qmath Library  是高度优化的高精度数学函数集合、因此我不确定是否需要它。 我的代码中还有 PLL 控制。 是的、我有 C2000Ware、但我在这里不使用它们。 我正在链接中的公共文件和头文件  

    a. C:\F2806x_common\include  和 C:\F2806x_common\lib

    b. C:\F2806x_headers\include 和 C:\F2806x_headers\F2806x_headers\cmd  

    c. C:\ti\ccs1031\ccs\tools\compiler\ti-cgt-C2000_20.2.4.LTS \lib  

    d. C:\ti\ccs1031\ccs\tools\compiler\ti-cgt-C2000_20.2.4.LTS \include  

    是否希望我从 C2000Ware 中添加所有这些内容?

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3826466 #3826466]2. 是的、这需要更改链接器命令文件。 在迁移指南中、查看"Linker Command File Changes"部分和有关如何重命名某些部分的部分。 在本例中、您可能只需在.cmd 文件中细小".ebss"、然后可能会看到".bss"

    此过程需要时间才能理解。 修改.cmd 文件可能会产生许多错误。 让我们尝试使用合适的库和路径。  

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3826466 #3826466"]我对编译器标志的唯一评论是该器件不支持"-float_support=fpu64"。 F2806x 没有 FPU64硬件。

    让我们更改为 --float_support=fpu32"。 我的旧项目有  SFO_V6.H 文件、您想让我添加它吗? 它属于 C:\F2806x_common\lib。

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

    使用这些文件的 C2000Ware 版本将获得最新的更新。 正如我说过的、新版本的 C2000Ware 确实支持 IQMath 的 EABI 构建。 但是、我刚刚发现它没有 SFO 库的 EABI 版本、所以如果你遇到有关 SFO 库兼容性的错误、你可能需要使用 COFF。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3827143 #3827143">使用这些文件的 C2000Ware 版本将获得最新的更新。 正如我说过的、新版本的 C2000Ware 确实支持 IQMath 的 EABI 构建。 但是、我刚刚发现它没有 SFO 库的 EABI 版本、所以如果你遇到有关 SFO 库兼容性的错误、你可能需要使用 COFF。[/QUERP]

    尊敬的先生:

    当您谈到  C2000Ware 版本 时,我得到了线索。 我在选择库、包含路径时出错。 正如我在上一篇文章中提到的、我有3个令人困惑的选项、现在 C:\ti\c2000Ware_3_04_00_00\device_support\f28066\common\include 和 C:\ti\c2000Ware_3_04_00_00\device_support\f28066\headers\include 修复了 EABI 和 COFF 内存 问题、SFO 问题消失了。

    错误从104降至17!  

    现在、让我们来讨论具体的错误

    gmake :***[CAN_Module.obj]错误1.

    我现在看不到 Debug 文件夹中的任何目标文件。

    2. subdir_rules.mk:9:目标'eCAN-obj 的配方失败
    "./eCAN-c"、第71行:错误#137:结构"ECAN_MBOXES"没有字段"mailbox"

    是否会因为任何版本相关问题而生成此结果?  

    F2806x_GlobalVariableDefs.c" 、第376行:错误#148:声明与"volatile struct PIE_VECT_TABLE PieVectTable"不兼容(在"C:/ti/c2000/C2000Ware_3_04_00_00/device_support/f2806x/headers/include/F2806x_PieVect.h "的第271行声明)

    此问题是否告知初始化枚举类型?  

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

    进展顺利!

    在构建控制台中、应该有更多有关该文件无法构建的原因的详细信息。 仅此行不能为我提供足够的信息。

    2.我不确定"邮箱"来自哪里。 我找到了"ECAN_MBOXES"的定义、它肯定不包含"邮箱"字段。 您在切换到最新的 C2000Ware 之前最初使用的 C:\F2806x_headers\include 文件夹是否与 C2000Ware 包含的 F2806x_ECan.h 不同?

    3.在 F2806x_GlobalVariableDefs 中查找声明 PieVectTable 的行。 我想它缺少一个易失性。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3828434 #3828434]1. 编译控制台中应提供有关该文件无法编译的原因的更多详细信息。 仅此行不能为我提供足够的信息。

    对于这个特定的错误、让我向您提供一些详细信息、

    subdir_rules.mk:9:目标'CAN_Module.obj'的配方失败
    "./CAN_Module.c"、第45行:错误#137:结构"ECAN_MBOXES"没有字段"邮箱"
    "./CAN_Module.c"、第46行:错误#137:结构"ECAN_MBOXES"没有字段"邮箱"

    如果我转到  CAN_Module.c 的特定行红色交叉错误如下所示、

    看起来在 OnCamreciver 函数下、没有定义2个变量。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3828434 #3828434"]2. 我不确定"邮箱"来自哪里。 我找到了"ECAN_MBOXES"的定义、它肯定不包含"邮箱"字段。 您在切换到最新的 C2000Ware 之前最初使用的 C:\F2806x_headers\include 文件夹是否与 C2000Ware 包含的 F2806x_ECan.h 不同?

    目前,在 project>C2000 compiler> Include 选项中,我使用的是2 path (include_path,-l ) like  

     C:\ti\c2000Ware_3_04_00_00\device_support\f2806x\con\include C:\ti\c2000Ware_3_04_00_00\device_support\f2806x\headers\include

    您想让我 添加 C:\F2806x_headers\include 吗? 让我比较  一下 C2000Ware 中的 F2806x_ECan.h 和 C:\F2806x_headers\include。

    在2013版本 的 F2806x_ECan.h 中、位于 C:\F2806x_headers\include、其书面

    /******** /
    /* eCAN 邮箱*/
    /******** /

    结构 ECAN_MBOXES{
    struct MBOX mailbox[32];

    2021 年  F2806x_ECan.h 版本 、位于 C:\ti\c2000Ware_3_04_00_00\device_support\f2806x\headers\include 其写入的

    / eCAN 邮箱
    //
    结构 ECAN_MBOXES

     

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3828434 #3828434"]3. 在 F2806x_GlobalVariableDefs 中查找声明 PieVectTable 的行。 我猜是因为它缺少易失性。

    当我从  C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2806x\headers\source 复制 F2806x_GlobalDefableVars.c 时、此问题就消失了

    现在、误差从17降至15。

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

    我认为您的部分信息已被截断。 这两个头文件是否不同? 根据您的代码判断、我猜您的项目最初使用的那个执行了一些操作、比如定义 ECAN_MBOXES 来包含一个类似 MBOOX mailbox[32]的数组、其中 C2000Ware 中的那个将每个邮箱定义为一个单独的字段(MBOX0、MBOX1...MBOX31)。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3829811 #3829811">我认为您的部分邮件已被截断。 这两个头文件是否不同? 根据您的代码判断、我猜您的项目最初使用的那个执行了一些操作、比如定义 ECAN_MBOXES 来包含一个类似 MBOOX mailbox[32]的数组、其中 C2000Ware 中的那个将每个邮箱定义为一个单独的字段(MBOX0、MBOX1...MBOX31)。

    尊敬的先生:

    是的、我确实看到了这种差异。 我的代码是从父  级 F2806X_eCAN-c 和 F2806X_eCAN-h 中定制的 我的一个像 eCAN-c 和 eCAN-h

    我有与其他器件的管道、 因此 CAN_Module.h 和 CAN_Module.c 已用于某种目的。

    现在看一下2013和2021版本的这2个文件、可能是我的旧代码、仅在2013版本中运行。

    当我想从以前的版本添加这些文件时、我遇到了很多错误、甚至在 我将 struct MBOX mailbox[32]添加到2021版本时、也会出现错误

    当我想添加 C:\F2806x_headers\include、 C:\F2806x_headers\Include AT Project Properties→Build→Linker→File Search Path 时、错误就会出现

    您能看到 单独的字段(MBOX0、MBOX1...MBOX31)被锁定了吗?

    比如2013版本  的 F2806X_eCAN-H.C my  eCAN-c、

    易失性结构 ECAN_REGS ECANA_Shadow;

    是否要我添加  

    易失性结构 ECAN_MBOXES ECANaMbox;?

    我 的 eCAN.h 包含:

    typedef 结构体_tag_CAN_message_obj

    typedef 结构体_tag_CAN_pipe  

    在这些函数下、调用了诸如 can按摩院 缓冲区、时间、占空比等 UINT 类型变量。

    您认为 不需要在合适的位置添加 typedef 结构之类的内容吗?

    我的旧代码能够在以前构建、可能与新版本 的 F2806x_eCAN-h.c 相冲突

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

    由于我不知道您的代码是什么样子、因此我很难说出正确的路径是什么、但最好尝试更新您的代码、使其与较新版本的头文件兼容。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3831534 #3831534"]由于我不知道您的代码是什么样子,因此我很难说出正确的路径是什么,但最好尝试更新您的代码,使其与较新版本的头文件兼容

    尊敬的先生:

    以上所有问题都会导致  在 project>C2000 compiler>include 选项中选择错误

    现在通过更改 以下路径的设置将错误降至3  

     C:\F2806x_common\include  

     C:\F2806x_headers\include  

    现在、看看我们以前遇到的控制台、


    #148声明与"struct pie VECT_table PieVectTable"(在"C:/F2806x 头文件/F2806x 头文件/include/F2806x PieVect.h"的第194行声明)不兼容 F2806x 全局变量定义

    我已从  C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2806x\headers\source 复制 F2806x_GlobalVariableDefs.c

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

    如果切换回原始 GlobalVariableDefs.c 文件、问题是否会消失? 或者尝试删除 GlobalVariableDefs.c 中"struct PIE_VECT_TABLE PieVectTable"前面的易失性关键字? 这有帮助吗?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3833303 #3833303"]如果切换回原始 GlobalVariableDefs.c 文件,问题是否会消失?

    这两个版本的文件都是相同的。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3833303 #3833303">或尝试删除 GlobalVariableDefs.c 中"struct PIE_VECT_table PieVectTable"前面的易失性键字? 这是否有帮助?

    如果我们从 GlobalVariableDefs.c 中删除、则会出现103个错误、包括 ISR、内存等。 如果我们从  F2806x_PieVect.h 中删除它、则错误仍然为25、并且控制台显示"PIE_VECT_TABLE PieVectTable is not defined"。

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

    25个错误表示什么?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3834806 #3834806"]

    25个错误表示什么?

    惠特尼

    [/报价]

    大多数情况下 ,#10234-D 未解析的符号仍然存在   

    和段错误来自 ROM pievector 头文件。

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

    您是否介意列出其中一些未解析的符号? 这可能有助于我确定缺少哪个文件。 您已将 F2806x_DefaultIsr.c 添加到您的项目中、对吧?

    同样、您能告诉我它在抱怨什么部分吗?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3835193 #3835193)]您是否介意列出其中一些未解析的符号? 这可能有助于我确定缺少哪个文件。 您已将 F2806x_DefaultIsr.c 添加到您的项目中、对吧?

    当然,先生! 看看这里、

    warning #10373-D: library "../IQmath.lib" contains TI-COFF object files which
       are incompatible with the ELF output file.  Ensure you are using the proper
       library.
    warning #10373-D: library "../SFO_TI_Build_V6b.lib" contains TI-COFF object
       files which are incompatible with the ELF output file.  Ensure you are using
       the proper library.
    warning #10373-D: library "../IQmath.lib" contains TI-COFF object files which
       are incompatible with the ELF output file.  Ensure you are using the proper
       library.
    warning #10373-D: library "../SFO_TI_Build_V6b.lib" contains TI-COFF object
       files which are incompatible with the ELF output file.  Ensure you are using
       the proper library.
    warning #10247-D: creating output section ".text" without a SECTIONS
       specification
    warning #10247-D: creating output section ".data" without a SECTIONS
       specification
    warning #10247-D: creating output section ".bss" without a SECTIONS
       specification
    warning #10247-D: creating output section ".cinit" without a SECTIONS
       specification
    warning #10247-D: creating output section "ramfuncs" without a SECTIONS
       specification
    warning #10247-D: creating output section "CLA1mathTables" without a SECTIONS
       specification
    warning #10247-D: creating output section "Cla1Prog" without a SECTIONS
       specification
    warning #10247-D: creating output section ".scratchpad" without a SECTIONS
       specification
    warning #10247-D: creating output section ".const_cla" without a SECTIONS
       specification
    warning #10247-D: creating output section ".const" without a SECTIONS
       specification
    warning #10247-D: creating output section "DevEmuRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "CpuTimer0RegsFile" without a
       SECTIONS specification
    warning #10247-D: creating output section "CpuTimer1RegsFile" without a
       SECTIONS specification
    warning #10247-D: creating output section "CpuTimer2RegsFile" without a
       SECTIONS specification
    warning #10247-D: creating output section "CsmPwlFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "FlashRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "AdcResultFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "CsmRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "SciaRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "ScibRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "SpiaRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "XIntruptRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "PieCtrlRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "GpioDataRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "GpioIntRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "SysCtrlRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "ECanaRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "Cla1RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm1RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm2RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm3RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm4RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm5RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm6RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "EPwm7RegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "GpioCtrlRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "AdcRegsFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "ECanaMboxesFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "PieVectTableFile" without a SECTIONS
       specification
    warning #10247-D: creating output section "ClaDataRam2" without a SECTIONS
       specification
    warning #10247-D: creating output section ".switch" without a SECTIONS
       specification
     
     undefined          first referenced    
      symbol                in file         
     ---------          ----------------    
     ADCINT1_ISR        ./F2806x_PieVect.obj
     ADCINT2_ISR        ./F2806x_PieVect.obj
     ADCINT3_ISR        ./F2806x_PieVect.obj
     ADCINT4_ISR        ./F2806x_PieVect.obj
     ADCINT5_ISR        ./F2806x_PieVect.obj
     ADCINT6_ISR        ./F2806x_PieVect.obj
     ADCINT7_ISR        ./F2806x_PieVect.obj
     ADCINT8_ISR        ./F2806x_PieVect.obj
     ADCINT9_ISR        ./F2806x_PieVect.obj
     CLA1_INT1_ISR      ./F2806x_PieVect.obj
     CLA1_INT2_ISR      ./F2806x_PieVect.obj
     CLA1_INT3_ISR      ./F2806x_PieVect.obj
     CLA1_INT4_ISR      ./F2806x_PieVect.obj
     CLA1_INT5_ISR      ./F2806x_PieVect.obj
     CLA1_INT6_ISR      ./F2806x_PieVect.obj
     CLA1_INT7_ISR      ./F2806x_PieVect.obj
     CLA1_INT8_ISR      ./F2806x_PieVect.obj
     Cla1funcsLoadSize  ./CLA.obj           
     Cla1funcsLoadStart ./CLA.obj           
     Cla1funcsRunStart  ./CLA.obj           
     DATALOG_ISR        ./F2806x_PieVect.obj
     DINTCH1_ISR        ./F2806x_PieVect.obj
     DINTCH2_ISR        ./F2806x_PieVect.obj
     DINTCH3_ISR        ./F2806x_PieVect.obj
     DINTCH4_ISR        ./F2806x_PieVect.obj
     DINTCH5_ISR        ./F2806x_PieVect.obj
     DINTCH6_ISR        ./F2806x_PieVect.obj
     DSP28x_usDelay     ./ADC.obj           
     ECAN0INTA_ISR      ./F2806x_PieVect.obj
     ECAN1INTA_ISR      ./F2806x_PieVect.obj
     ECAP1_INT_ISR      ./F2806x_PieVect.obj
     ECAP2_INT_ISR      ./F2806x_PieVect.obj
     ECAP3_INT_ISR      ./F2806x_PieVect.obj
     EMUINT_ISR         ./F2806x_PieVect.obj
     EPWM1_INT_ISR      ./F2806x_PieVect.obj
     EPWM1_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM2_INT_ISR      ./F2806x_PieVect.obj
     EPWM2_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM3_INT_ISR      ./F2806x_PieVect.obj
     EPWM3_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM4_INT_ISR      ./F2806x_PieVect.obj
     EPWM4_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM5_INT_ISR      ./F2806x_PieVect.obj
     EPWM5_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM6_INT_ISR      ./F2806x_PieVect.obj
     EPWM6_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM7_INT_ISR      ./F2806x_PieVect.obj
     EPWM7_TZINT_ISR    ./F2806x_PieVect.obj
     EPWM8_INT_ISR      ./F2806x_PieVect.obj
     EPWM8_TZINT_ISR    ./F2806x_PieVect.obj
     EQEP1_INT_ISR      ./F2806x_PieVect.obj
     EQEP2_INT_ISR      ./F2806x_PieVect.obj
     HRCAP1_INT_ISR     ./F2806x_PieVect.obj
     HRCAP2_INT_ISR     ./F2806x_PieVect.obj
     HRCAP3_INT_ISR     ./F2806x_PieVect.obj
     HRCAP4_INT_ISR     ./F2806x_PieVect.obj
     I2CINT1A_ISR       ./F2806x_PieVect.obj
     I2CINT2A_ISR       ./F2806x_PieVect.obj
     ILLEGAL_ISR        ./F2806x_PieVect.obj
     INT13_ISR          ./F2806x_PieVect.obj
     INT14_ISR          ./F2806x_PieVect.obj
     LUF_ISR            ./F2806x_PieVect.obj
     LVF_ISR            ./F2806x_PieVect.obj
     MRINTA_ISR         ./F2806x_PieVect.obj
     MXINTA_ISR         ./F2806x_PieVect.obj
     NMI_ISR            ./F2806x_PieVect.obj
     PIE_RESERVED       ./F2806x_PieVect.obj
     RTOSINT_ISR        ./F2806x_PieVect.obj
     RamfuncsLoadEnd    ./main.obj          
     RamfuncsLoadStart  ./main.obj          
     RamfuncsRunStart   ./main.obj          
     SCIRXINTA_ISR      ./F2806x_PieVect.obj
     SCIRXINTB_ISR      ./F2806x_PieVect.obj
     SCITXINTA_ISR      ./F2806x_PieVect.obj
     SCITXINTB_ISR      ./F2806x_PieVect.obj
     SFO                ./PWM.obj           
     SPIRXINTA_ISR      ./F2806x_PieVect.obj
     SPIRXINTB_ISR      ./F2806x_PieVect.obj
     SPITXINTA_ISR      ./F2806x_PieVect.obj
     TINT0_ISR          ./F2806x_PieVect.obj
     USB0_INT_ISR       ./F2806x_PieVect.obj
     USER10_ISR         ./F2806x_PieVect.obj
     USER11_ISR         ./F2806x_PieVect.obj
     USER12_ISR         ./F2806x_PieVect.obj
     USER1_ISR          ./F2806x_PieVect.obj
     USER2_ISR          ./F2806x_PieVect.obj
     USER3_ISR          ./F2806x_PieVect.obj
     USER4_ISR          ./F2806x_PieVect.obj
     USER5_ISR          ./F2806x_PieVect.obj
     USER6_ISR          ./F2806x_PieVect.obj
     USER7_ISR          ./F2806x_PieVect.obj
     USER8_ISR          ./F2806x_PieVect.obj
     USER9_ISR          ./F2806x_PieVect.obj
     WAKEINT_ISR        ./F2806x_PieVect.obj
     XINT1_ISR          ./F2806x_PieVect.obj
     XINT2_ISR          ./F2806x_PieVect.obj
     XINT3_ISR          ./F2806x_PieVect.obj
     rsvd_ISR           ./F2806x_PieVect.obj
     
    error #10234-D: unresolved symbols remain
     
    error #10010: errors encountered during linking; "{DEMO}.out" not bui

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

    您在项目中使用哪些.cmd 文件? 诸如.cinit、.text、.data 等段都应在.cmd 文件中定义、如 device_support\f2806x\con\cmd 中所示。 "RegsFile"部分应在 device_support\f28066\headers\cmd\F2806x_Headers_nonBIOS.cmd 文件中提供。

    您的项目中是否有 F2806x_DefaultIsr.c 文件? 如果不是、这可能会解释为什么所有这些 ISR 符号都未定义。 DSP28x_usDelay 应位于 F2806x_usDelay.asm 中。 如果您的项目中确实存在 F2806X_usDelay.asm、但仍会给您带来错误、则可能是 EABI 与 COFF 问题。 EABI 不要求在符号名称前面加上下划线、如 COFF 所做的那样。

    您是否决定使用 COFF 还是 EABI? 正如我之前所说、使用 COFF 可能更好、因为我认为我们没有用于 F2806x 的 SFO 库的 EABI 版本。

    惠特尼

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

    尊敬的先生:

    这些问题可能是您在这里提到的合理问题。 最近的设置具有 F2806X_RAM_LINK_cmd 文件。 我不使用非 BIOS cmd。 我有  F2806x_DefaultIsr.c.

    此时 EABI 正在运行。

    韩国假期已经出现,5天后,我将在办公桌前办公。 允许在删除或添加这些文件后继续更新。

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

    没问题、享受假期、让我知道您回来后这些变化是如何的。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3836636 #3836636"]没有问题,请尽情享受假期,并告诉我这些更改在您返回后如何进行。

    非常感谢先生。 让我们沿着您的前一个方向前进。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3835378 #3835378]\n 您在项目中使用的是哪些.cmd 文件? 诸如.cinit、.text、.data 等段都应在.cmd 文件中定义、如 device_support\f2806x\con\cmd 中所示。 "RegsFile"部分应在 device_support\f28066\headers\cmd\F2806x_Headers_nonBIOS.cmd 文件中提供。

    在我 的项目属性>常规>项目>链接器命令文件中、 没有 F2806x_Headers_nonBIOS.cmd 的下拉/弹出列表。  

    我无法在项目树中复制它。 我执行的操作如下、 project>C2000 compiler> include 选项

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3835378 #3835378"]您的项目中是否有 F2806x_DefaultIsr.c 文件?

    是的、我现在添加了它。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3835378 #3835378">如果不是,这可能会解释为什么所有这些 ISR 符号都未定义。 DSP28x_usDelay 应位于 F2806x_usDelay.asm 中。 如果您的项目中确实存在 F2806X_usDelay.asm、但仍会给您带来错误、则可能是 EABI 与 COFF 问题。 EABI 不要求在符号名称前面加上下划线、如 COFF 所做的那样。

    我已删除  F2806X_usDelay.asm。 查看 “项目属性”>“常规”>“工具链设置”  

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3835378 #3835378">您是否决定使用 COFF 还是 EABI? 正如我之前说过的、使用 COFF 可能更好、因为我认为我们没有用于 F2806x 的 SFO 库的 EABI 版本。[/引述]

    让我们将其应用于 COFF。  

    但我在使用新的时遇到相同的错误。

    在 my  Project Properties→Build→Linker→File Search Path

    看看我的项目树

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

    哈桑

    希望告知您、目前、惠特尼已不在办公室、并将于10月4日下星期一返回。  届时您应该会收到回复。

    最好。

    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3840872 #3840872"]在“项目 属性”>“常规”>“项目”>“链接器”命令文件中 ,没有 F2806x_Headers_nonBIOS.cmd 的下拉/弹出列表。

    您可以编辑 C2000链接器->文件搜索路径下的属性。 将"F2806x_Headers_nonBIOS.cmd"放入-l 段中、并将其所在的路径放在-i 段中。 我看到您已将其添加到编译器搜索路径中、但它需要位于 cmd 文件的链接器搜索路径中。

    对于 PieVectTable 错误、请查看 F2806x_PieVect.h 底部的 extern、并将其与 F2806x_GlobalVariableDefs.c 中的 PieVectTable 行进行比较 它们之间是否有任何差异(extern 除外)?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3850233 #3850233">您可以在 C2000链接器->文件搜索路径下编辑属性。 将"F2806x_Headers_nonBIOS.cmd"放入-l 段中、并将其所在的路径放在-i 段中。 我看到您已将其添加到编译器搜索路径中、但它需要位于 cmd 文件的链接器搜索路径中。

    感谢您在安排之前再次光临、我等了很长时间。

    是的、我这么做了、下拉列表仍然不包含任何  F2806x_Headers_nonBIOS.cmd、我将其保留为空。 错误与上一个线程相同。 我还会将其从  编译器搜索路径中删除。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3850233 #3850233"]有关 PieVectTable 错误、请查看 F2806x_PieVect.h 底部的 extern、并将其与 F2806x_GlobalVariableDefs.c 中的 PieVectTable 行进行比较 它们之间是否有任何差异(外部除外)?[/QUERP]

    我向这个特定问题询问了堆栈溢出、例如 、如果我们添加了 volatile struct pie VECT_table PieVectTable;在 F2806x_GlobalVariableDefs.c 和 F2806x_PieVect.h 的两个位置、则会引发此类问题。

    一位专家说:"这两个声明都应兼容、因此、如果在一个位置声明结构是易变的、则它也必须在另一个位置。 但是、成功编译 F2806x_GlobalVariableDefs.c 后、仍会出现其他链接错误(与此问题相关或不相关)"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3850588 #3850588")是的,我这样做了,下拉列表中仍然没有任何  F2806x_Headers_nonBIOS.cmd,我将其保留为空。 错误与上一个线程相同。 我还会从  编译器搜索路径中删除它。

    如果它没有显示在下拉框中、这是可以的。 只要它位于链接器选项中、就会传递给链接器。 您可以通过查看构建控制台中的内容来进行双重检查。 在编译输出的末尾、查找"Invoking:C2000 Linker"部分和对 cl2000的调用。 您应该能够检查该命令中的-i 和-l 选项。

    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3850588 #3850588")一位专家说,"这两个声明都应兼容,因此,如果声明结构在一个地方是易失的,则该结构也必须在另一个地方。 但是、成功编译 F2806x_GlobalVariableDefs.c 后、仍会出现其他链接错误(与此问题相关或不相关)"

    没错。 我们现在需要解决这些其他错误。 仍然存在哪些错误? 所有这些 ISR 都是未定义符号或其他内容的错误?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3851060 #3851060">仍有哪些错误? 所有这些 ISR 都是未定义的符号或其他内容的相关错误?

    尊敬的先生:  

    只需在12天前的假期中查看我的帖子。

    3个错误保持不变。   易失性结构 PI_VECT_TABLE PieVectTable 问题是主要问题。

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

    我想您说过、通过使 F2806x_GlobalVariableDefs.c 和 F2806x_PieVect.h 保持一致、您能够解决有关 PI_VECT_TABLE 的这些错误、但修复后发现了更多错误。 对吗? 我问这些额外的错误是什么。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3852896 #3852896">我认为您可以通过使 F2806x_GlobalVariableDefs.c 和 F2806x_PieVect.h 保持一致来解决有关 PIE_VECT_table 的错误、但修复后会显示更多错误。 对吗? 我询问这些附加错误是什么。[/引述]

    是的、我无法解决它。 此问题导致的其他错误。

    再看一下。

    您是否认为,在“项目”>“属性”>“资源”>“链接资源”中  

    呼气标志(!) 任何问题、请看一下

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3852971 #3852971"]是的、我无法解决该问题。 此问题导致的其他错误。

    还有哪些其他错误? 无论是使用易失性还是不使用易失性、它都是相同的错误、还是两组错误? 我想同时看到这两种情况。

    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3852971 #3852971"]呼号(!) 出现任何问题、请查看

    如果您不在任何地方使用这些变量、这不一定是一个问题。 不过、您应该能够编辑它们以更正它们。 "PROJECT_ROOT"可能与"PROJECT_LOC"相同、"BuildDirectory"听起来像是.out 生成的位置、它通常是 PROJECT_LOC 中的一个文件夹、命名与构建配置相同。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3853684 #385364)]其他哪些错误? 无论是使用易失性还是不使用易失性、它都是相同的错误、还是两组错误? 我想查看这两种情况。[/quot]

    请看这里、我的意思是最后2个误差、

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3853684 #385364]\n 如果您不在任何位置使用这些变量、这不一定是个问题。 不过、您应该能够编辑它们以更正它们。 "PROJECT_ROOT"可能与"PROJECT_LOC"相同、"BuildDirectory"听起来像是.out 生成的位置、它通常是 PROJECT_LOC 中的一个文件夹、命名与构建配置相同。[/QUERPLET]

    这个是现有项目、我从其他位置导入了这个项目。  呼出符号(!)参数显示项目的上一个位置。 遗憾的是、无法对这些内容进行编辑以更改路径。 我 的 PROJECT_ROOT"和 "PROJECT_LOC"不相同。

     在 “项目”>“属性”>“生成”>“生成变量”  

    我已更改当前位置的 BuildAritifactFileName 和 BuildArtifactPathName。

    我不确定这是真正的原因。

    此时、我的 CCS 10不响应可能是服务器问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3854302 #3854302"]查看此处,我的意思是最后2个错误,

    这两个错误只是较高层次的错误、表示编译无法完成、因为存在其他错误。 在解决 PieVectTable 问题之前、它们不会消失。

    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3854302 #3854302")不幸的是,无法对这些内容进行编辑以更改路径。 我 的 PROJECT_ROOT"和 "PROJECT_LOC"不相同。[/引用]

    抱歉、我想这些是由 CCS 生成的、无法删除或编辑。 正如我说过的、您可能没有使用它们、因此它们不一定是问题。 但是、它们可能表示工程文件已损坏或与此版本的 CCS 不兼容。 您知道项目最初创建的 CCS 版本吗?

    您可能需要考虑在新的清理工作区中创建新的清理工程、并从头开始添加文件和编译/链接器选项。 或者、可以从已经包含所有适当文件的 C2000Ware 示例开始、并对其进行编辑以添加您的自定义代码?

    惠特尼

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

    尊敬的先生:

    我将很快回复此主题。  

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

    好的、感谢您的更新。

    惠特尼

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

    尊敬的先生:

    我有线索、这可能是显示错误的主要原因。 如前所述、我提出   了 PROJECT_ROOT"和 "PROJECT_LOC"问题。 我导入的项目属于服务器。 最近服务器关闭、因此我的项目显示为"已关闭"。 我无法打开此项目。

    现在我复制了整个项目文件,又从我的新项目下的已知目标导入了该文件(new>CCSPROJECT>。 但现在在  Project Properties>CCS General > Project > Why ARM is Showing?

    我应该去 新建>项目吗?

     

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3854367 #3854367"]

    抱歉、我想这些是由 CCS 生成的、无法删除或编辑。 正如我说过的、您可能没有使用它们、因此它们不一定是问题。 但是、它们可能表示工程文件已损坏或与此版本的 CCS 不兼容。 您知道项目最初创建的 CCS 版本吗?

    您可能需要考虑在新的清理工作区中创建新的清理工程、并从头开始添加文件和编译/链接器选项。 或者、可以从已经包含所有适当文件的 C2000Ware 示例开始、并对其进行编辑以添加您的自定义代码?

    [/报价]

    说得好。 我认为该项目是在 CCS 6.1或5版本以上构建的。  

    是的,在 “项目属性”>“常规”>“产品”中,我选择了 ware2000。

    让我们像以前那样设置所有参数。 根和位置将设置为当前状态。

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

    尊敬的先生:

    对于我们先前讨论的最后一个设置、我得到了如下所示的巨大误差、  
    #20标识符"xxx"未定义  

     

    如果我转到 “属性”>“C2000 编译器”>“高级选项”>“运行时模型”选项。并在 “指定 CLA 后台任务为使用”中选择“打开”,

    如下所示。

    然后误差降至63、请参阅下文  

    一位 TI 专家说、  gmake 依赖关系中断错误- Code Composer Studio 论坛- Code Composer Studio ︎- TI E2E 支持论坛

    除此问题外,我的 subdir_rulls.mk 、  --preproc_dependence="$(basename $(<F)).d_raw" this area shows red.

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

    尊敬的先生:

    我刚刚从项目树中删除了 F280x_project.h 文件。

    现在误差降至20、

    请看一下、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3863681 #3863681"]为什么 ARM 显示?

    器件系列框中? 这很奇怪。 无论如何、您可能希望尝试启动一个新项目、但事实上、您仍然看到 C28x 的适当编译器选项(如 CLA 选项)、我认为这并不一定是您的其他问题的责任。

    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3863977 #3863977"]#20标识符"xxx"未定义 

    此错误有时意味着包含这些符号的文件缺少#include。 #include "DSP28x_Project.h"应该足以使其找到这些符号。

    [引用 userid="231920" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3863977 #3863977"]如果我转到 "Properties>C2000 编译器>高级选项>运行时模型选项..并在 指定 CLA 后台任务中选择"on"

    F2806x 器件不支持 CLA 后台任务、因此应保持关闭状态。 通常、您不应将错误数量用作您处于正确轨道上的指示器。 有时、在进行更改后看到更多错误是一个很好的迹象、因为这意味着您清除了一个非常糟糕的错误、它使您的编译无法进行足够远的进度、甚至无法找到这些其他问题。

    您是否为 F2806x 导入了 C2000Ware 示例工程并将其用于指导您的工程配置? 使用我们的一个示例作为参考、了解您在 include 路径上需要哪些项目以及添加到项目中的命令文件可能会有所帮助。

    惠特尼

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

    您能否检查您的警告并查看警告内容? 它们是否警告无法找到链接器文件搜索路径上的任何目录。 您在最近的帖子中显示的这些错误似乎表明它没有到 libc.a 的正确路径(应为"${CG_TOOL_ROOT}/lib")或您的非 BIOS.cmd 文件。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865061 #3865061"]我不认为其他问题一定要归咎于您。

    是的、我解决了这个问题。

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865061 #3865061"]此错误有时意味着包含这些符号的文件缺少#include。 #include "DSP28x_Project.h"应该足以使其找到这些符号。

    是的、这个问题现在就消失了。 我有  DSP28x_Project.h、 DSP28x_examples.h、 DSP28x_Device.h 我只需删除 DSP28x_Project.h 即可

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865061 #3865061"]F2806x 器件不支持 CLA 后台任务、因此应保持关闭状态。 通常、您不应将错误数量用作您处于正确轨道上的指示器。 有时、在进行更改后看到更多错误是一个很好的迹象、因为这意味着您清除了一个非常糟糕的错误、这使您的编译无法进行足够远的进度、甚至无法找到这些其他问题。

    是的、说得好。 我的项目包含 CLA.h 和 CLA.C. 我让它保持关闭。 是的、最大限度地减少误差毫无意义。  

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865061 #3865061"]

    您是否为 F2806x 导入了 C2000Ware 示例工程并将其用于指导您的工程配置? 使用我们的一个示例作为参考、了解您在 include 路径上需要哪些项目以及添加到项目中的命令文件可能会有所帮助。

    惠特尼

    [/报价]

    是的。 此项目在 C2000Ware 上运行、但我不能使用任何示例。 如何获取项目配置指南。 请指明一个。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865080 #3865080">您能否检查警告并查看警告内容? 它们是否警告无法找到链接器文件搜索路径上的任何目录。

    看看 CDT 控制台的说法、

    error #10008-D: cannot find file "libc.a"
    error #10008-D: cannot find file "F2806x_Headers_nonBIOS.cmd"
    error #10008-D: cannot find file "rts2800_fpu32_eabi.lib"
    error #10265: no valid memory range available for placement of ".text"
    error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section ".text" size 0x5410page 0
    error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section "Cla1Prog" size 0x28eepage 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section "ramfuncs" size 0x33fpage 0.  Available memory ranges:
     
    error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section "ClaDataRam2" size 0x32apage 1.  Available memory ranges:
       DEV_EMU      size: 0x105        unused: 0x105        max hole: 0x105     
       SYS_PWR_CTL   size: 0x3          unused: 0x3          max hole: 0x3       
       FLASH_REGS   size: 0x60         unused: 0x60         max hole: 0x60      
       CSM          size: 0x20         unused: 0x20         max hole: 0x20      
       ADC_RESULT   size: 0x20         unused: 0x10         max hole: 0x10      
       CPU_TIMER0   size: 0x8          unused: 0x0          max hole: 0x0       
       CPU_TIMER1   size: 0x8          unused: 0x0          max hole: 0x0       
       CPU_TIMER2   size: 0x8          unused: 0x0          max hole: 0x0       
       PIE_CTRL     size: 0x20         unused: 0x6          max hole: 0x6       
       PIE_VECT     size: 0x100        unused: 0x0          max hole: 0x0       
       DMA          size: 0x200        unused: 0x200        max hole: 0x200     
       CLA1         size: 0x80         unused: 0x40         max hole: 0x40      
       USB0         size: 0x1000       unused: 0x2ca        max hole: 0x2ca     
       McBSPA       size: 0x40         unused: 0x40         max hole: 0x40      
       ECANA        size: 0x40         unused: 0xc          max hole: 0xc       
       ECANA_LAM    size: 0x40         unused: 0x40         max hole: 0x40      
       ECANA_MOTS   size: 0x40         unused: 0x40         max hole: 0x40      
       ECANA_MOTO   size: 0x40         unused: 0x40         max hole: 0x40      
       ECANA_MBOX   size: 0x100        unused: 0x0          max hole: 0x0       
       COMP1        size: 0x20         unused: 0x20         max hole: 0x20      
       COMP2        size: 0x20         unused: 0x20         max hole: 0x20      
       COMP3        size: 0x20         unused: 0x20         max hole: 0x20      
       EPWM1        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM2        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM3        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM4        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM5        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM6        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM7        size: 0x40         unused: 0x0          max hole: 0x0       
       EPWM8        size: 0x40         unused: 0x40         max hole: 0x40      
       ECAP1        size: 0x20         unused: 0x20         max hole: 0x20      
       ECAP2        size: 0x20         unused: 0x20         max hole: 0x20      
       ECAP3        size: 0x20         unused: 0x20         max hole: 0x20      
       HRCAP1       size: 0x20         unused: 0x20         max hole: 0x20      
       HRCAP2       size: 0x20         unused: 0x20         max hole: 0x20      
       EQEP1        size: 0x40         unused: 0x40         max hole: 0x40      
       EQEP2        size: 0x40         unused: 0x40         max hole: 0x40      
       HRCAP3       size: 0x20         unused: 0x20         max hole: 0x20      
       HRCAP4       size: 0x20         unused: 0x20         max hole: 0x20      
       GPIOCTRL     size: 0x40         unused: 0x0          max hole: 0x0       
       GPIODAT      size: 0x20         unused: 0x0          max hole: 0x0       
       GPIOINT      size: 0x20         unused: 0x0          max hole: 0x0       
       SYSTEM       size: 0x30         unused: 0x0          max hole: 0x0       
       SPIA         size: 0x10         unused: 0x0          max hole: 0x0       
       SCIA         size: 0x10         unused: 0x0          max hole: 0x0       
       NMIINTRUPT   size: 0x10         unused: 0x10         max hole: 0x10      
       XINTRUPT     size: 0x10         unused: 0x0          max hole: 0x0       
       ADC          size: 0x80         unused: 0x30         max hole: 0x30      
       SPIB         size: 0x10         unused: 0x10         max hole: 0x10      
       SCIB         size: 0x10         unused: 0x0          max hole: 0x0       
       I2CA         size: 0x40         unused: 0x40         max hole: 0x40      
       PARTID       size: 0x1          unused: 0x1          max hole: 0x1       
       CSM_PWL      size: 0x8          unused: 0x8          max hole: 0x8       
    error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section "CLA1mathTables" size 0x2d0page 0.  Available memory ranges:
     

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3865080 #3865080"]您在最近的帖子中显示的错误似乎表明它没有到 libc.a 的正确路径(应为"${CG_TOOL_ROOT}/lib")或您的非 BIOS.cmd 文件。

    告诉我哪里出错了。

    建议说:

    ../CLATask.cla", line 439: advice #30012: (Performance) Single-precision float to double-precision float conversion operation was not eliminated during optimization. Using inefficient fallback; consider modifying code to not require this operation.
    "../CLATask.cla", line 439: advice #30012: (Performance) Double-precision comparison (>) operation was not eliminated during optimization. Using inefficient fallback; consider modifying code to not require this operation.
    #3195-D (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.	CAN_Module.c	/DSPF28069	line 299
    "NO_PSN_FILE": advice #30012: (Performance) Single-precision float to double-precision float conversion operation was not eliminated during optimization. Using inefficient fallback; consider modifying code to not require this operation.
    

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

    尊敬的先生:

    我现在可能会向正确的方向前进。

    在上一个问题中、我在  优化设置中执行了-gen_func_subsections on。

    Project > Properties>C2000 Linker>文件搜索路径中 ,我有类似的更改  

    at --Library、-l

    C:\ti\ccs1031\ccs\tools\compiler\ti-cgt-C2000_20.2.5.LTS \libc.a

    2. c:\ti\c2000\C2000Ware_3_04_00_00\driverlib  

    现在、控制台说、

    Invoking: C2000 Linker
    "C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla0 --float_support=fpu32 --vcu_support=vcu0 -O2 --advice:performance=all -g --float_operations_allowed=all --printf_support=full --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --cla_background_task=off --cla_signed_compare_workaround=off -z -m""{DSPF28069}.map\"" --stack_size=0x800 --warn_sections -i"C:/F2806x_common/lib" -i"C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/lib" -i"C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/lib" -i"C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="DSPF28069_linkInfo.xml" --rom_model -o ""{DSP28069}.out\"" "./AC_SYNC.obj" "./ADC.obj" "./CAN_Module.obj" "./CLA.obj" "./CLATask.obj" "./ChargeNDischarge.obj" "./Control.obj" "./D_OUT.obj" "./EEPRom.obj" "./F2806x_CSMPasswords.obj" "./F2806x_CodeStartBranch.obj" "./F2806x_CpuTimers.obj" "./F2806x_DBGIER.obj" "./F2806x_DefaultIsr.obj" "./F2806x_DisInt.obj" "./F2806x_GlobalVariableDefs.obj" "./F2806x_PieCtrl.obj" "./F2806x_PieVect.obj" "./F2806x_SysCtrl.obj" "./Global.obj" "./LED.obj" "./Main_Timer.obj" "./Message.obj" "./PRCharger.obj" "./PRRect.obj" "./PWM.obj" "./Register.obj" "./SCI.obj" "./Serial.obj" "./eCAN.obj" "./main.obj" "../F2806x_Headers_nonBIOS.cmd"  -l"C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS/lib/libc.a" -l"C:/ti/c2000/C2000Ware_3_04_00_00/driverlib" 
    <Linking>
    fatal error #6001: cannot open file "C:/ti/c2000/C2000Ware_3_04_00_00/driverlib":  Permission denied

    权限被拒绝  

    这意味着我必须在文件属性环境设置中执行一些操作?

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

    我们看到链接器错误这一事实意味着构建错误已得到解决、因此我们肯定会接近。

    l 选项用于文件、driverlib 是一个目录、而不是文件、因此您可以删除它。 您是否仍然遇到有关 libc.a 的错误? 现在、它包含在控制台输出中的方式看起来是正确的。

    要修复这些"程序无法放入可用存储器"、您需要编辑.cmd (一个不是 F2806x_Headers_nonBIOS.cmd、而另一个具有.text、.stack 等)。 为上述部分分配更多空间。 有 一个很好的指南 、介绍如何为各部分提供更多内存。 查看页面底部的常见问题解答。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3866522 #3866522]l 选项适用于文件,driverlib 是一个目录,而不是文件,因此可以删除该目录。 您是否仍然遇到有关 libc.a 的错误? 它包含在控制台输出中的方式现在看起来是正确的。

    尊敬的先生:

    再次感谢您的观看。 所有错误都消失了、因为我首先添加了 driverlib。 但是、如果我将其从  Project > Properties>C2000 Linker>文件搜索路径(--library、-l)中删除、则2021年10月15日会出现21.21AM 错误。 现在、我没有收到任何与 libc.a 相关的错误

    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3866522 #3866522">要修复这些"程序无法放入可用存储器"、您需要编辑.cmd (不是 F2806x_Headers_nonBIOS.cmd、而是另一个具有.text、.stack 等的.cmd)。 为上述部分分配更多空间。 有 一个很好的指南 、介绍如何为各部分提供更多内存。 查看页面底部的常见问题解答[/quot]

    在此阶段、没有明显的存储器错误。 我确实看到了您提到的指南。 现在看一下权限被拒绝的问题、我检查了此文件夹访问设置、但看起来不错!

    在 Mattehw Pate 先生的 CCS 5的另一篇文章中、我遇到了相同的问题。    

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

    添加 driverlib 时、错误可能会消失、因为添加 driverlib 会严重破坏链接过程、以至于它甚至无法达到这些其他链接器错误。 Driverlib 不支持 F2806x -如果您查看 driverlib 目录、则不会看到 f2806x 文件夹。 您应该能够从项目中删除 driverlib 并更新您的 cmd 文件以解决剩余的链接器错误。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034386/tms320f2806-16000-object-files-have-incompatible-formats/3868144 #3868144)]添加 driverlib 时、错误可能会消失、因为添加 driverlib 会严重破坏链接过程、甚至无法达到这些其他链接器错误。 Driverlib 不支持 F2806x -如果您查看 driverlib 目录、则不会看到 f2806x 文件夹。 您应该能够从项目中删除 driverlib 并更新您的 cmd 文件以解决剩余的链接器错误。

    是的、我确实看到 F2806x 驱动程序库文件夹不可用。 如果我们从   Project > Properties>C2000 Linker>文件搜索路径中删除此路径,则将出现第15个 oct 相同的错误。  

    您要讨论哪一个 cmd 文件?  

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

    我想您之前提到过28069_RAM_lnk.cmd 吗? 您要使用的链接器命令文件是否为.text、.stack、.bss 等分配空间? 这是我提到的那个。

    惠特尼