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.

[参考译文] CCS/LAUNCHXL-F28377S:"F2837xD_FPU_RFFT_ADC_RT_lnk.cmd"错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/593425/ccs-launchxl-f28377s-f2837xd_fpu_rfft_adc_rt_lnk-cmd-error

器件型号:LAUNCHXL-F28377S

工具/软件:Code Composer Studio

您好!

当我在 F2837xD_FPU_RFFT_ADC_RT 示例中将 FFT poin 的数量(从512更改为2048点)时、  

我遇到有关.cmd 文件的错误。

#define RFFT_STACages  9.  

 // 2^9 = 512点

// 2^11 = 2048点

感谢你的答复。

此致、

Amin

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

    您需要为 ebss 段分配更多内存。
    请参阅 wiki、获取有关了解和调整链接器的帮助:
    processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking
    processors.wiki.ti.com/.../Linker_Command_File_Primer

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

    Chris、

    感谢您的回复和帮助。 我不熟悉 F28377。

    如何为 ebss 段分配更多内存。

    连接了两个文件 cmd 和 main (controlSUITE>libs>dsp>FPU>v1_50>...>rfft_adc_RT)

    谢谢、此致、

    Amin

    e2e.ti.com/.../Archive.zip

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

    这些 Wiki 提供了详细信息。
    您可以添加另一个存储器段来拆分 ebss 段、也可以合并存储器(例如 RAMLS4_5)。
    分离的示例:.ebss :>> RAMLS4 | RAMLS5,PAGE = 1

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

    Chris、

    感谢您的帮助、 我进行了更改、但错误仍然存在。

    --define RFFT_alignment=1024
    #if !defined (RFFT_alignment)
    在 C2000链接器下#ERROR define RFFT_alignment -> Advanced Options -> Command File Preprocessing ->-define
    #endif

    存储器

    第0页:
    /* begin 用于"引导至 SARAM"引导加载程序模式*/
    #IF 定义(RAM)
    开始:origin = 0x000000,length = 0x000002
    #Elif defined (闪存)
    开始:origin = 0x080000,length = 0x000002
    #endif
    RAMM0:origin = 0x000122、length = 0x0002DE
    RAMM1:origin = 0x000400,length = 0x000400

    RAMD0:origin = 0x00B000、length = 0x000800
    RAMD1:origin = 0x00B800,length = 0x000800

    RAMLS0:origin = 0x008000、length = 0x000800
    RAMLS1:origin = 0x008800,length = 0x000800
    RAMLS2:origin = 0x009000,length = 0x000800

    RAMGS0:origin = 0x00C000、length = 0x001000
    RAMGS1:origin = 0x00D000、length = 0x001000
    RAMGS2:origin = 0x00E000、length = 0x001000
    RAMGS3:origin = 0x00F000、length = 0x001000

    复位:origin = 0x3FFFC0,length = 0x000002

    FLASHA:origin = 0x080002,length = 0x001FFE /*片上闪存*/
    FLASHC:origin = 0x084000,length = 0x002000 //片上闪存*/
    FLASHD:origin = 0x086000、length = 0x002000 //片上闪存*/
    FLASHE:origin = 0x088000、length = 0x008000 //片上闪存*/
    FLASHF:origin = 0x090000,length = 0x008000 //片上闪存*
    FLASHG:origin = 0x098000、length = 0x008000 //片上闪存*/
    FLASHH:origin = 0x0A0000,length = 0x008000 //片上闪存*/
    FLASHI:origin = 0x0A8000、length = 0x008000 //片上闪存*/
    FLASHJ:origin = 0x0B0000,length = 0x008000 //片上闪存*/
    FLASHK:origin = 0x0B8000、length = 0x002000 //片上闪存*/
    FLASHL:origin = 0x0BA000、length = 0x002000 //片上闪存*/
    FLASHM:origin = 0x0BC000、length = 0x002000 //片上闪存*/
    FLASHN:origin = 0x0BE000、length = 0x002000 //片上闪存*/


    第1页:
    BOOT_RSVD:origin = 0x000002,length = 0x000120 // M0的一部分,引导 ROM 将此用于栈*/

    RAMLS3:origin = 0x009800,length = 0x000800
    RAMLS4:origin = 0x00A000,length = 0x000800
    RAMLS5:origin = 0x00A800,length = 0x000800
    RAMLS6:origin = 0x00B800,length = 0x000800  /* new*/

    RAMGS45:origin = 0x010000,length = 0x002000
    RAMGS67:origin = 0x012000,length = 0x002000
    RAMGS89:origin = 0x014000,length = 0x002000
    RAMGS1011:origin = 0x016000,length = 0x002000

    RAMGS12:origin = 0x018000,length = 0x001000
    RAMGS13:origin = 0x019000,length = 0x001000
    RAMGS14:origin = 0x01A000,length = 0x001000
    RAMGS15:origin = 0x01B000,length = 0x001000

    FLASHB:origin = 0x082000、length = 0x002000 //片上闪存*

    部分

    codestart:> begin,page = 0
    #IF 定义(RAM)
    .TI.ramfunc:{}> RAMM0,PAGE = 0
    .text:>> RAMM1 | RAMD0 | RAMD1 | RAMLS0、page = 0
    .cinit:> RAMLS1,page = 0

    .pinit:> RAMLS1,page = 0
    .switch:>RAMLS1,page = 0
    econst:>RAMLS4,page = 1.
    #Elif defined (闪存)
    .TI.ramfunc:{}负载= FLASHC,
    运行= RAMLS1、
    run_start (_RamfuncsRunStart)、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    PAGE = 0

    .text:> FLASHN,page = 0
    .cinit:> FLASHM,PAGE = 0

    .pinit:> FLASHM,PAGE = 0
    .switch:> FLASHM,PAGE = 0
    econst:> FLASHB,PAGE = 1.
    其他
    #ERROR 将"RAM"或"flash"添加到 C2000链接器->高级选项->命令文件预处理->-define
    ENDIF//RAM

    /*测试特定部分*/
    RFFTdata1:> RAMGS45,page = 1,align = RFFT_alignment
    RFFTdata2:>RAMGS67,page = 1.
    RFFTdata3:>RAMGS89,page = 1.
    RFFTdata4:>RAMGS1011,page = 1.

    FPUmathTables :>RAMGS12,page = 1.

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

    .cio:>RAMLS3,page = 1.
    .sysmem:> RAMLS3,page = 1.

    .stack:> RAMLS4,page = 1.
    .ebss:>> RAMLS5 | RAMLS6,PAGE = 1
    .esysmem:>RAMLS4,PAGE = 1.

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

    此致、

    Amin

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

    您无法创建新的存储器部分(请参阅存储器映射 www.ti.com/.../LAUNCHXL-F28377S 文档的数据表)。 您用于 LS6的地址范围实际上是 D1 RAM。 您需要将 ebss 分配给已经存在的存储器(例如我之前提到的示例)、或者您可以创建一个新的混合存储器部分(如 RAMLS4_5)、您可以在其中注释掉 RAMLS4和 RAMLS5、然后将它们的组合地址范围分配给 RAMLS4_5。

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

    Chris、

    感谢您的帮助、 我按以下方式进行更改并清除错误。
    还可以吗? 理论上没有问题?

    RAMLS3:origin = 0x009800,length = 0x000800
    RAMLS4:origin = 0x00A000,length = 0x000800
    RAMLS5:origin = 0x00A800,length = 0x001000 /* new*/
    …μ A。
    …μ A。
    …μ A。
    .ebss:>RAMLS5,PAGE = 1.
    …μ A

    此致、
    Amin

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

    您要将其展开到 D0中、D0已声明为链接器的一部分并分配给文本段。 这将导致问题。
    您可以注释掉 RAMLS4和 RAMLS5。 然后创建 RAMLS4_5:origin = 0x00A000、length = 0x001000

    将 ebss 分配给 RAMLS4_5、并更新对之前的 RAMLS4和 RAMLS5的其他引用

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