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.

[参考译文] 编译器/TMS320F28075:链接错误

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/945683/compiler-tms320f28075-link-error

器件型号:TMS320F28075

工具/软件:TI C/C++编译器

在调试模式下编译成功、
在发布模式下、会发生编译错误(链接错误)。
我可以采取什么措施来避免此错误?
错误网格 a:
错误# 10430-D:".TI.ramfunc"段由__attribute__((ramfunc))或--ramfunc = on 生成、需要段规范才能运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请通过在 C28x 编译器手册中搜索 标题为 "函数属性 "的子章节、然后搜索 ramfunc、获取有关 RAM 中函数的一些背景信息。

    编译器选项--ramfunc=on 必须出现在版本编译配置中,并且在调试编译配置中缺失。

    无论您是否使用--ramfunc,链接器命令文件都应具有与以下内容类似的行...

    #ifdef __TI_Compiler_version__
    #if __TI_Compiler_version__>=15009000
    .TI.ramfunc:{}负载= FLASHD,
    RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRunSize)、
    run_end (_RamfuncsRunEnd)、
    PAGE = 0、align (4)
    #else
    ramfuncs :LOAD = FLASHD,
    RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRunSize)、
    run_end (_RamfuncsRunEnd)、
    PAGE = 0、ALIGN (4)
    #endif
    #endif 

    这些行从该链接器命令文件复制...

    C:\ti\ccs1000\ccs\ccs_base\c2000\include\28075_flash_lnk.cmd

    您的 CCS 安装在类似的位置具有相同的文件。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以看到相同的链接命令、但为什么检测到链接错误?
    以下是一些链接命令。

    部分
    {
    /*分配计划领域:*/
    .cinit:> FLASHB PAGE = 0,ALIGN (4)
    .pinit:> FLASHB,PAGE = 0,ALIGN (4)
    .text:>> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0,ALIG(4)
    codestart:> begin page = 0,align (4)

    #ifdef __TI_Compiler_version__
    #if __TI_Compiler_version__>=15009000
    .TI.ramfunc:{}负载= FLASHD,
    RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRunSize)、
    run_end (_RamfuncsRunEnd)、
    PAGE = 0、ALIGN (4)
    其他
    ramfuncs:load = FLASHD,
    RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRunSize)、
    run_end (_RamfuncsRunEnd)、
    PAGE = 0、ALIGN (4)
    #endif
    #endif

    /*分配未初始化的数据段:*/
    .stack:>RAMM1 page = 1.
    .ebss:>> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1.
    .esysmem:> RAMLS5 PAGE = 1.

    /*初始化段进入闪存*/
    econst:>> FLASHF | FLASHG | FLASHH PAGE = 0,ALIGN (4)
    .switch:> FLASHB PAGE = 0,ALIGN (4)

    .reset:> reset,page = 0,type = DSECT //未使用,*/

    }

    /*
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //文件结束。
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================