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.

[参考译文] TMS320F28388D:SysConfig cmd 模块问题?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1316032/tms320f28388d-sysconfig-cmd-module-issue

器件型号:TMS320F28388D
主题中讨论的其他器件:SysConfig

您好!

我在使用默认 cmd 文件时遇到问题、并开始修改 SysConfig 中的 cmd 模块。

首先,我有一个奇怪的警告: CMD 模块说必须启用...  

其次、链接失败。 好像找不到 SysConfig 生成的 cmd 文件。  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"C:/TI/CCS/CCS12.50/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -Ooff --fp_mode=relaxed --advice:performance=all --define=_FLASH --define=DEBUG --define=CPU1 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"2205_ctc_chrg7k_sw_cpu1.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/TI/CCS/CCS12.50/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/TI/CCS/CCS12.50/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="2205_ctc_chrg7k_sw_cpu1_linkInfo.xml" --entry_point=code_start --rom_model -o "2205_ctc_chrg7k_sw_cpu1.out" "./syscfg/board.obj" "./syscfg/device_cmd.obj" "./syscfg/c2000ware_libraries.obj" "./device/F2838x_CodeStartBranch.obj" "./device/device.obj" "./sources/converter_io.obj" "./sources/init_cla_cpu1.obj" "./sources/main_cpu1.obj" "./sources/pll_pfc.obj" "./sources/regulation_pfc.obj" "./sources/supervision_cpu1.obj" "C:/TI/SDK/C2000Ware/C2000Ware_5_01_00_00/driverlib/f2838x/driverlib/ccs/Debug/driverlib.lib" "../sources/includes/SFO_v8_fpu_lib_build_c28_driverlib_eabi.lib" -l"syscfg/device_cmd.cmd" -llibc.a
<Linking>
warning #10461-D: Invalid to call C28 function "sqrtf" defined in "C:\TI\CCS\CCS12.50\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\lib\rts2800_fpu64_eabi.lib<e_sqrtf.c.obj>" from CLA file "./sources/regulation_pfc.obj"
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 ".const" without a SECTIONS specification
warning #10247-D: creating output section "codestart" without a SECTIONS specification
warning #10247-D: creating output section "CpuToCla1MsgRAM" without a SECTIONS specification
warning #10247-D: creating output section ".bss_cla" 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
error #10430-D: ".TI.ramfunc" section generated by __attribute__((ramfunc)) or --ramfunc=on requires a SECTIONS specification to function.
error #10010: errors encountered during linking; "2205_ctc_chrg7k_sw_cpu1.out" not built
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

提前感谢您的帮助、

此致、

阿德里安

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

    您可以单击"压缩"。 这样就解决了我的问题。

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

    您好!  

    您能否检查 device_cmd.cmd 文件是否由 SysConfig 生成?

      有关如何使用链接器命令工具、您可以参阅应用手册 www.ti.com/.../sprad49。

    此致

    西达尔特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以单击"Suppress"。 这样就解决了我的问题。

    我当时的印象是,这只是"沉默"的警告,但它并不意味着问题已经消失了。 我错了吗?

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

    在我的案例中、问题消失了、代码工作正常。 我不知道你的情况,你能告诉我你的配置"MEMCFG"?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参阅应用手册 https://www.ti.com/lit/pdf/sprad49 了解如何使用链接器命令工具。

    谢谢。 这是我以前到达的位置。

    您能否检查 device_cmd.cmd 文件是否由 SysConfig 生成?

    确实如此。

    我还注意到预处理器宏 CMDTOOL 是未定义的,因此 CMD_INIT()函数在 Device_init()中没有被调用。 这可能也是一个问题。  

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

    您好!  

    您有哪些编译器选项?  请为您的项目共享编译日志控制台。

    必须向编译器指定"--cmd_file="syscfg/device_cmd.opt"选项、以使编译器定义 CMDTOOL 符号、

    此致

    西达尔特

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

    您好!

    必须向编译器指定"--cmd_file="syscfg/device_cmd.opt"选项,以定义 CMDTOOL symbo

    谢谢、它看起来是有效的(至少对于符号定义)。

    以下是控制台日志:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    **** Build of configuration FLASH for project 2205_ctc_chrg7k_sw_cpu1 ****
    "C:\\TI\\CCS\\CCS12.50\\ccs\\utils\\bin\\gmake" -k -j 16 all -O
    Building file: "../2205_ctc_chrg7k_sw_cpu1.syscfg"
    Invoking: SysConfig
    "C:/TI/CCS/CCS12.50/ccs/utils/sysconfig_1.18.0/sysconfig_cli.bat" -s "C:/TI/SDK/C2000Ware/C2000Ware_5_01_00_00/.metadata/sdk.json" -d "F2838x" --script "C:/Users/a.thurin/Desktop/Projets logiciels/2205-CTC-CHRG7K-SW/2205_ctc_chrg7k_sw_cpu2/2205_ctc_chrg7k_sw_cpu2.syscfg" --context "CPU2" --script "C:/Users/a.thurin/Desktop/Projets logiciels/2205-CTC-CHRG7K-SW/2205_ctc_chrg7k_sw_cpu1/2205_ctc_chrg7k_sw_cpu1.syscfg" --context "CPU1" -o "syscfg" --compiler ccs
    Running script...
    Validating...
    warning: CPU2 CMD_FLASH(/utilities/cmd_tool/cmd_syscfg/source/CMD) sectionMemory_cpuToCla1MsgRAM: Memcfg module must be enabled for complete error checking.
    warning: CPU2 CMD_FLASH(/utilities/cmd_tool/cmd_syscfg/source/CMD) sectionMemory_bss: The memcfg module is needed on CPU1 to assign GSRAM to CPU2.
    warning: CPU2 CMD_FLASH(/utilities/cmd_tool/cmd_syscfg/source/CMD) sectionMemory_data: The memcfg module is needed on CPU1 to assign GSRAM to CPU2.
    warning: CPU2 CMD_FLASH(/utilities/cmd_tool/cmd_syscfg/source/CMD) sectionMemory_sysmem: The memcfg module is needed on CPU1 to assign GSRAM to CPU2.
    info: CPU1 CPUSELx(/driverlib/clocktree/mux.js) cpu_sel_mux: For enabling peripherals, use the CPU1 /driverlib/sysctl.js enable_SYSCTL_PERIPH_CLK_TIMER0
    info: CPU1 PERx_CPU1_SYSCLK_GATE(/driverlib/clocktree/unknown.js) cpu1_sysclk_gate: For enabling peripherals, use the CPU1 /driverlib/sysctl.js enable_SYSCTL_PERIPH_CLK_TIMER0
    info: CPU1 PERx_CPU2_SYSCLK_GATE(/driverlib/clocktree/unknown.js) cpu2_sysclk_gate: For enabling peripherals, use the CPU1 /driverlib/sysctl.js enable_SYSCTL_PERIPH_CLK_TIMER0
    info: CPU1 PWM_PFC(/driverlib/epwm.js) epwmTimebase_clockDiv: For perfectly synchronized TBCLKs across multiple EPWM modules, the prescaler bits in the TBCTL register of each EPWM module must be set identically
    info: CPU1 PWM_PFC(/driverlib/epwm.js) epwmActionQualifier_t1Source: T1/T2 selection and configuration of a trip/digital-compare event is indpendent of the configuration of that event in the Trip-Zone submodule
    info: CPU1 PWM_PFC(/driverlib/epwm.js) epwmActionQualifier_t2Source: T1/T2 selection and configuration of a trip/digital-compare event is indpendent of the configuration of that event in the Trip-Zone submodule
    info: CPU1 PWM_PFC(/driverlib/epwm.js) hrpwm_enable: MEP becomes operational: •Three EPWMCLK cycles after the period starts when high-resolution period (TBPRDHR) control is not enabled. • When high resolution period (TBPRDHR) control is enabled via the HRPCTL register – In up-count mode: three EPWMCLK cycles after the period starts until three EPWMCLK cycles before the period ends. – In up-down count mode: when counting up, three cycles after CTR = 0 until three cycles before CTR = PRD, and when counting down, three cycles after CTR = PRD until three cycles before CTR= 0.
    info: CPU1 PWM_TDC_1(/driverlib/epwm.js) epwmTimebase_clockDiv: For perfectly synchronized TBCLKs across multiple EPWM modules, the prescaler bits in the TBCTL register of each EPWM module must be set identically
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

    阿德里安

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

    Adrien、

    似乎链接器命令文件的内容没有链接。

    您需要在项目属性中定义 device_cmd.cmd 文件中使用的相应宏(generic_flash_lnk 或 generic_ram_lnk)、如下所示。

    此致

    西达尔特

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

    Siddharth、

    我添加了  GENERAL_FLASH_lnk 命令、但结果是相同的。 与 generic_ram_lnk 相同。 此外、生成的 cmd 文件中没有对通用任何内容的引用。

    即使它起作用,它是否不会指向生成的.cmd 之外的.cmd?

    此致、

    阿德里安

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

    Adrien、  

    请共享  生成的 device_cmd.cmd 文件。   

    我并不是要添加一个新的链接器命令文件,而是只使用与生成的 device_cmd.cmd 文件一起使用的宏。  

    此致

    西达尔特

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

    Siddharth、

    好的、我现在就明白了!  问题解决了!  

    下面是生成的 cmd 文件:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #ifdef CMD_FLASH
    MEMORY
    {
    RAMM0 : origin = 0x0001B1, length = 0x00024F
    RAMM1 : origin = 0x000400, length = 0x0003F8
    CLATOCPU_MSGRAM : origin = 0x001480, length = 0x000080
    CPUTOCLA_MSGRAM : origin = 0x001500, length = 0x000080
    CLATODMA_MSGRAM : origin = 0x001680, length = 0x000080
    DMATOCLA_MSGRAM : origin = 0x001700, length = 0x000080
    CLA1_RAM_COMBINATION : origin = 0x008000, length = 0x001800
    RAMLS3 : origin = 0x009800, length = 0x000800
    RAMLS4 : origin = 0x00A000, length = 0x000800
    RAMLS5 : origin = 0x00A800, length = 0x000800
    RAMLS6 : origin = 0x00B000, length = 0x000800
    RAMLS7 : origin = 0x00B800, length = 0x000800
    RAMD0 : origin = 0x00C000, length = 0x000800
    RAMD1 : origin = 0x00C800, length = 0x000800
    RAMGS0 : origin = 0x00D000, length = 0x001000
    RAMGS1 : origin = 0x00E000, length = 0x001000
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    在前面的消息之后、我将 CMD_FLASH 添加到了编译器预定义符号(+ 在链接器预定义符号中添加了 GENERAL_FLASH_lnk)。

    现在我了解了您的意思、我添加了 CMD_FLASH 作为链接器预定义符号、现在可以正常使用  

    非常感谢您的帮助!

    此致、

    阿德里安

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

    我应该说我仍然有1个错误:  

    Fullscreen
    1
    warning #10247-D: creating output section "CpuToCla1MsgRAM" without a SECTIONS specification
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这对应于具有奇怪警告的部分(参见第一篇文章)。

    如果你有解决这个问题的办法,那就太棒了!

    我还看到针对 CPU2 cmd 配置的类似警告、希望该解决方案对这两者都有效。  

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

    您好!

    您 将必须 如下所示为 cpuToCla1MsgRAM 添加一个部分、才能消除此警告

    此致

    西达尔特

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

    您好!

    这似乎是问题的一部分:  

    此致、

    阿德里安

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

    Adrien、

    我不确定您的意思、请澄清一下。

    此致

    西达尔特

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

    Siddharth、

    我不知道发生了什么、这就是问题所在。 CMD 部分(仅在 CPUTOCLA 子部分中)中存在此警告、指出需要启用 MEMCFG。 除此之外、(请参阅本线程中的第一个屏幕截图)、它适用于所有其他子部分。

    结果是、生成的 cmd 文件中没有 CPU 至 CLA 部分、这会导致编译错误。

    CPU2中还有其他子部分似乎有类似的问题、但如果是同一个问题、我不会感到惊讶、因此如果解决这个问题不能解决其他问题、我会联系您。

    此致、

    阿德里安

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

    阿德里安

    我看到在生成的中、已经在   生成的链接器命令中为 cpuToCla1MsdRAM 段分配了一个存储器 CPUTOCLA_MSGRAM。  编译期间是否收到警告或错误?

    此致

    西达尔特

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

    Siddharth、

    这是非常奇怪的,我会宣誓它不是在那里,我上次检查。

    CPU1的链接期间警告已经消失(但 SysConfig 中的警告仍然存在)。

     

    我移至 CPU2、尽管 SysConfig CMD 模块的配置相同、但链接警告也存在。 此外、还有其他警告、请参阅下文。

    在 SysConfig 中、CpuToClaMsgRAM 部分中提供了有关需要激活 memcfg 的警告。 SysConfig 中还有与使用 GSRAM 的段中链接期间相同的警告。

    这不会阻止编译,所以我可以尝试继续,但我只能希望它不会导致操作中的问题...

    SysConfig 是否有可能出现会导致这些警告的问题?

    此致、

    阿德里安

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

    Adrien、  

    我们将对此进行检查并回复给您。   

    此致

    西达尔特

x 出现错误。请重试或与管理员联系。