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:在SYS-BIOS项目中无法识别RTSC平台

Guru**** 2551300 points
Other Parts Discussed in Thread: SYSBIOS, TMS320C6746

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/666156/ccs-rtsc-platform-not-recognized-in-sys-bios-project

主题中讨论的其他部件:SysBIOSTMS320C6746

工具/软件:Code Composer Studio

您好,

我正在将代码从DSP-BIOS 5.42 迁移到SYS-BIOS 6.53。  我使RTSC平台独立于我的项目。  但是,我的项目似乎看不到它。  第一个线索是,在项目的CCS常规属性下,我没有RTSC选项卡。  我有主菜单和产品,但没有RTSC。  此外,当项目链接时,我收到一条警告(1.0247万-D),要求创建一个IRAM输出部分,但不包含部分规范,即使IRAM包含在我的独立RTSC平台中,但我最初在项目中引用了该平台。

任何指导或线索都将受到欢迎。

罗伯特

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

    首先,您确定您的项目是RTSC项目吗?  如果是,文件夹应具有如下所示的"RTSC"图标:

    我不确定您指的是什么RTSC选项卡。  在我的项目中,“产品”选项卡中有一个框,我可以在其中选择xdctools版本,下面的框中可以选择平台。  下面是一个屏幕截图:

    您能详细说明这个问题吗?

    谢谢!
    布拉德

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

    [报价用户="Brad Griffis "]

    首先,您确定您的项目是RTSC项目吗?  如果是,文件夹应具有如下所示的"RTSC"图标:

    [/引述]

    确实如此!

    [报价用户="Brad Griffis "]

    我不确定您指的是什么RTSC选项卡。  在我的项目中,“产品”选项卡中有一个框,我可以在其中选择xdctools版本,下面的框中可以选择平台。  下面是一个屏幕截图:

    [/引述]

    和我的一样!  我参考了此主题,请参阅底部/答案:

    可能已经看到了对其他地方也有影响的东西。

    [报价用户="Brad Griffis "]

    您能详细说明这个问题吗?

    [/引述]

    有哪些进一步的信息会有用?  如上所述,项目正在编译,但链接器存在各种问题。  "没有章节说明"是列表中的第一个,因此我在这里提到了这一点。  据推测,平台应该提供该信息,不是吗?  我看到链接程序抱怨在我的平台系统信息库的Platform.XDC文件中定义的部分。  是否有应从平台引用的.cmd?  我在那里看不到一个。  我的平台不直接位于项目中/是一个单独的存储库,因为我可能希望跨多个项目使用同一平台。

    谢谢!

    罗伯特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert,
    能否请您清洁,重新构建并发布完整的控制台输出? 您是否还可以发布"商品"选项卡的屏幕截图?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Robert,
    能否请您清洁,重新构建并发布完整的控制台输出? 您还可以发布的屏幕截图

    “您的产品”选项卡?

    [/引述]

    您好,Sasha,

    我已经对这个主题的原始问题有了一些答案,但剩下的答案也一样多。  请提供建议。

    '调用:XDCtools'

    "C:/ti/xdctools_3_50_03_33_core/xs"- xdcpath="C:/ti/bios_6_53_01_03/packages;C:/ti/xdctools_3_50_03_33_core;C:/git/1/3/Misc/platform;" xdc.pkg -c"自配置-scp -c."-dubb.scp -scp -b -dg -dg -dg -dg -dg -dg -dic."
    正在从package/cfg/2.cfg配置2.xe674 ...
    gmake [1]:输入目录'C:\git /0/1/3/Code/src/SysBIOS'
    asme674 C:/ti/bios_6_53_01_03/packages/ti/SysBIOS/famili/c64p/hwi_asm.s62 ...
    gmake [1]:正在离开目录'C:\git /0/1/3/Code/src/SysBIOS'
    gmake [1]:输入目录'C:\git /0/1/3/Code/src/SysBIOS'
    Cle674 C:/ti/bios_6_53_01_03/packages/ti/SysBIOS/BIOS.c ...

    >>编译失败
    Makefile:70:目标'BIOS.OBJ'的配方失败
    "C:/ti/bios_6_53_01_03/packages/ti/SysBIOS/BIOS.c",第36行:致命错误#5:无法打开源文件"XDC/std.h"

    罗伯特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先要做的是找出为什么在xdcpath中有C:\ti/xdctools_3_50_03_33_core。 该路径不完整,您可以自动获得XDCtools文件的实际路径,而无需添加该路径。 因此,请检查您的"产品"选项卡,如果您在"其他存储库"下有XDCtools路径,请删除该项目。 执行此操作后,请清洁并重新构建。
    此外,您还可以将以下内容添加到配置脚本中以获得额外输出:
    xdc.module ("xdc.cfg.SourceDir").verbose = 3;

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

    \n您需要做的第一件事就是弄清楚为什么xdcpath中有C:/ti/xdctools_3_50_03_33_core。 该路径不完整,您可以自动获得XDCtools文件的实际路径,而无需添加该路径。 因此,请检查您的"产品"选项卡,如果您在"其他存储库"下有XDCtools路径,请删除该项目。 执行此操作后,请清洁并重新构建。
    此外,您还可以将以下内容添加到配置脚本中以获得额外输出:
    xdc.module ("xdc.cfg.SourceDir").verbose = 3;

    rtsc.eclipse.org/.../SourceDir.html

    [/引述]

    xdc.module命令的位置?

    我提出了另一个建议,现在我只能这样做。  请提供建议

    gmake [1]:正在离开目录'C:\git /0/1/2/Code/Debug'

    gmake:***没有生成目标'C:\git /0/1/2/Code/Debugg/configPkg/config.Bld'的规则,需要'configPkg/compiler.opt'。
    gmake:***没有生成目标'C:\git /0/1/2/Code/Debugg/configPkg/config.Bld'的规则,需要'configPkg/compiler.opt'。
    gmake:***没有生成目标'C:\git /0/1/2/Code/Debugg/configPkg/config.Bld'的规则,需要'configPkg/compiler.opt'。
    gmake:***没有生成目标'C:\git /0/1/2/Code/Debugg/configPkg/config.Bld'的规则,需要'configPkg/compiler.opt'。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    xdc.module命令进入配置脚本,即2.cfg。
    我仍然需要查看完整的输出,以便能够判断出发生了什么错误。 但在创建该输出之前,请始终先清理。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [quote user="Sasha Slijepcevic">XDC.module命令进入配置脚本,即2.cfg。
    我仍然需要查看完整的输出,以便能够判断出发生了什么错误。 但在创建该输出之前,请始终先清理。

    [/引述]

    IP命名使我不能完全粘贴(任何超出几行的内容都将成为更改名称的负担)。  

    我通过在此处引用您之前的帖子删除了以前的错误:

    只需在"高级选项"中删除"构建配置文件"引用即可。

    下面是最新的问题。  我在我的平台中指定了IRAM部分,因此不知道为什么它抱怨没有该定义。

    链接>

    警告#1.0247万-D:创建不带节规范的输出节"IRAM"
    警告#1.0346万-D:符号"__stack_size"是EABI中已弃用的COFFABI符号;请改用EABI符号"__TI_STACK_SIZE。 有关更多信息,请参阅'C6000 EABI迁移'指南,网址 为processors.wiki.ti.com/.../C6000_EABI:C6000_EABI_Migration</s>6000
    "configPkg/linker.cmd",第133行:错误#1.0099万-D:程序将不适合可用内存。对"Group_1"大小0x217部分执行定位失败。 可用内存范围:
    IRAM大小:0x4万未使用:0x23d最大孔:0x200
    "configPkg/linker.cmd",第154行:错误#1.0099万-D:程序将不适合可用内存。对".vecs"区域大小0x200进行定位失败。 可用内存范围:
    IRAM大小:0x4万未使用:0x23d最大孔:0x200
    "configPkg/linker.cmd",第145行:错误#1.0099万-D:程序将不适合可用内存。对".SWITCH"区大小0x115进行定位失败。 可用内存范围:
    IRAM大小:0x4万未使用:0x2D最大孔:0x8
    "configPkg/linker.cmd",第132行:错误#1.0099万-D:程序将不适合可用内存。对".stack"区大小0x800进行定位运行失败。 可用内存范围:
    IRAM大小:0x4万未使用:0x2D最大孔:0x8
    警告#1.0346万-D:符号“$BSS”是一个COFFABI符号,在EABI中已弃用;请改用EABI符号“__TI_STATIC_BASE”。 有关更多信息,请参阅'C6000 EABI迁移'指南,网址 为processors.wiki.ti.com/.../C6000_EABI:C6000_EABI_Migration</s>6000
    "configPkg/linker.cmd",第139行:错误#1.0099万-D:程序将不适合可用内存。对".cinit"大小0x8ac5区域进行定位失败。 可用内存范围:
    IRAM大小:0x4万未使用:0x13最大孔:0x8

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您似乎已成功完成链接步骤。 此时,您的自定义平台(您命名为“2”)将提供链接程序命令文件。 我必须看到Platform.XDC和Platform.xs才能进一步调试。 如果您不想公开发布它们,可以单击"我的姓名",然后单击"连接",再单击"发送私人邮件"。 您可以在此处附加相关文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎您已成功完成链接步骤。 此时,您的自定义平台(您命名为“2”)将提供链接程序命令文件。 我必须看到Platform.XDC和Platform.xs才能进一步调试。 如果您不想公开发布它们,可以单击"我的姓名",然后单击"连接",再单击"发送私人邮件"。 您可以在此处附加相关文件。

    [/引述]

    E2E不接受.XDC或.xs,因此我将其内容剪切并粘贴到下面。

    罗伯特

    平台.XDC

    /*!
    *平台向导生成的文件。 请勿修改
    *
    */

    metaonly模块平台继承xdc.platform.IPlatform {

    配置ti.platforms.generic.Platform.Instance CPU =
    ti.platforms.generic.Platform.create("CPU",{
    时钟频率:336,
    CatalogName:“ti.catalog.c6000",
    设备名称:“TMS320C6746”,
    定制内存映射:
    [
    ["L1PSRAM",

    名称:"L1PSRAM",
    基数:0x11E0万,
    len:0x0.8万,
    空格:"代码",
    访问:"rwx",
    }
    ],
    ["IROM",

    名称:"irom",
    底座:0x1170万,
    Len:0x10万,
    空格:"代码/数据",
    访问:"Rx",
    }
    ],
    ["L1DSRAM",

    名称:"L1DSRAM",
    基数:0x11F0万,
    len:0x0.8万,
    空格:"数据",
    访问:"RW",
    }
    ],
    ["IRAM",

    名称:"IRAM",
    Base:0x118万,
    Len:0x4万,
    空格:"代码/数据",
    访问:"rwx",
    }
    ],
    ["L3_CBA_RAM",

    名称:"L3_CBA_RAM",
    基数:0x8000万,
    Len:0x2万,
    空格:"代码/数据",
    访问:"rwx",
    }
    ],
    ["DDR",

    名称:"DDR",
    基数:0xC0万,
    Len:0x800万,
    空格:"代码/数据",
    访问:"rwx",
    }
    ],
    ],
    l1D模式:"32K",
    L1P模式:"32K",
    l2模式:"256K",

    });

    实例:

    覆盖配置字符串代码内存="IRAM";
    覆盖配置字符串dataMemory ="iRAM";
    覆盖配置字符串stackMemory ="iRAM";

    配置字符串l1D模式="32k";
    配置字符串l1PMode ="32k";
    配置字符串l2Mode ="256k";
    }

    platform.xs

    /*!
    *平台向导生成的文件。 请勿修改。
    *
    */

    函数getCpuDataSheet (CPUID)

    返回该.$MODULE.CPU.getCpuDataSheet(CPUID);
    }

    函数getCreateArgs()

    返回该.$MODULT.CPU;
    }

    函数getExeContext (prog)

    返回该.$module.cpu.getExeContext (prog);
    }


    函数getExecCmd (prog)

    返回该.$module.cpu.getExecCmd (prog);
    }


    函数getLinkTemplate (prog)

    返回该.$MODULE.CPU.getLinkTemplate (prog);
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,如果使用,下面是Debug\configPkg中linker.cmd文件的内容

    /*
    *请勿修改此文件;它是从模板自动生成的
    *将覆盖ti.targets.elf软件包中的linkcmd.xdt。
    */

    /*
    *将''置于路径周围,因为没有这一点,链接器
    *将'-'视为减号运算符,而不是文件名字符。
    */


    -l"C:\git\0\1\2\Code\Debug\configPkg\package\config\CMM_pe674.oe674"
    -l"C:\git \0\1\2\Code\src\SysBIOS\SysBIOS.ae674"
    -l"C:\ti\BIOS_6_53_01_03\packages\ti\targets\rts6000\lib\tI.Targets.rts6000.ae674"</s>6000.
    -l"C:\ti\BIOS_6_53_01_03\packages\ti\targets\rts6000\lib\boot.ae674"

    --retain="*(XDC)"


    --args 0x0
    堆0x0
    堆栈0x800

    内存

    L1PSRAM (rwx):org = 0x11e0万,len = 0x8000
    irom (RX):org = 0x1170万,len = 0x10万
    L1DSRAM (RW):org = 0x11f0万,len = 0x8000
    iRAM (rwx):org = 0x1180万,len = 0x4万
    L3_CBA_RAM (rwx):org = 0x8000万,len = 0x2万
    DDR (rwx):org = 0xC0万,len = 0x800万
    }

    /*
    *来自所有已加载软件包的链接器命令文件贡献:
    */

    /*来自xdc.services.global的内容(空):*/

    /* XDC中的内容(空):*/

    /* XDC.Corevers中的内容(空):*/

    /* XDC.shelf中的内容(空):*/

    /*来自xdc.services.spec的内容(空):*/

    /*来自xdc.services.intern.xsr的内容(空):*/

    /*来自xdc.services.intern.gen的内容(空):*/

    /*来自xdc.services.intern.cmd的内容(空):*/

    /* XD.Bld中的内容(空):*/

    /*来自ti.targets的内容(空):*/

    /*来自ti.targets.elf的内容(空):*/

    /* XDC.ROV的内容(空):*/

    /*来自xdc.runtime的内容(空):*/

    /*来自ti.targets.rts6000的内容(空):*/

    /*来自ti.sysbios.interfaces的内容(空):*/
    /*来自ti.SysBIOS.family的内容(空):*/

    /*来自xdc.services.getset的内容(空):*/

    /*来自ti.SysBIOS.family.C62的内容(空):*/

    /*来自xdc.runtime.knl的内容(空):*/

    /*来自ti.SysBIOS.family.c64p.primus的内容(空):*/

    /*来自ti.catalog.c6000的内容(空):*/

    /*来自ti.catalog的内容(空):*/

    /*来自ti.catalog.peripherals.hdvicp2的内容(空):*/

    /*来自xdc.platform的内容(空):*/

    /*来自xdc.cfg的内容(空):*/

    /*来自ti.platforms.generic的内容(空):*/

    /* CMM内容(空):*/

    /*来自ti.SysBIOS.hal的内容(空):*/

    /*来自ti.SysBIOS的内容(空):*/

    /*来自ti.SysBIOS.RTS (ti/SysBIOS/RTS/linkcmd.xdt)的内容:*/

    /*来自ti.SysBIOS.RTS.ti (ti/SysBIOS/RTS/ti/linkcmd.xdt)的内容:*/

    /*来自ti.SysBIOS.family.c64p (ti/SysBIOS/family/c64p/linkcmd.xdt)的内容:*/
    TI_SysBIOS_family_c64p_Cache_l1dSize =3.2768万;
    TI_SysBIOS_family_c64p_Cache_l1pSize = 3.2768万;
    TI_SysBIOS_family_c64p_Cache_l2Size = 26.2144万;

    /*来自ti.SysBIOS.KNL的内容(空):*/

    /*来自ti.SysBIOS.timers.timer64的内容(空):*/

    /*来自ti.SysBIOS.gates的内容(空):*/

    /*来自ti.SysBIOS.xdcruntime的内容(空):*/

    /*来自ti.SysBIOS.堆 的内容(空):*/

    /*来自ti.SysBIOS.utils的内容(空):*/

    /*来自configPkg的内容(空):*/

    /*来自xdc.services.io的内容(空):*/


    /*
    *静态实例对象的符号别名
    */
    xdc_runtime启动__EXECFXN__C = 1;
    xdc_runtime启动__RESETFXN__C = 1;

    章节

    .text:LOAD >> IRAM
    .ti.decompress: load > IRAM
    .stack:LOAD > IRAM
    组:LOAD > IRAM

    .BSS:
    近端数据:
    .rodata:
    }
    .cinit:加载> iRAM
    .Pinit:LOAD >> IRAM
    init_array:load > iRAM
    .const:LOAD >> IRAM
    数据:LOAD >> IRAM
    fardata:LOAD >> IRAM
    .SWITCH:LOAD >> IRAM
    sysmem: load > IRAM.(.sysmem:加载> IRAM。
    far:LOAD >> IRAM
    .args:LOAD > IRAM ALIGN = 0x4,Fill = 0 {_argsize = 0x0;}
    .CIO:加载>> IRAM
    .ti.handler_table:load > IRAM
    .c6xabi.exidx:LOAD > IRAM
    .c6xabi.extab:LOAD >> IRAM
    .sysinit:load > IRAM
    vectra:load > IRAM
    xdc.meta:LOAD > IRAM,type = copy

    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经完成了大部分的事情(不是所有的人都理解),并有一个完整的链接...通过将大多数更改为DDR。 但我仍然不明白为什么会出现此警告:

    警告#1.0247万-D:创建不带节规范的输出节"IRAM"

    如果我使用添加.cmd文件

    章节

    IRAM:> IRAM
    }

    对于项目,警告消失。 但似乎是多余的,IRAM已经在我的平台中定义,我不确定其他内存区域为什么不会生成类似的错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在代码中的某个位置定义了一个节IRAM,该节与内存区域IRAM不同。 很可能存在一个pragma,它将某些内容分配给IRAM部分。

    Debug子目录中的某个位置应该有一个扩展名为.map的内存映射文件。 这可能会提供更多线索。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在代码中的某个位置,您要定义IRAM的部分,该部分与内存区域IRAM不同。 很可能存在一个pragma,它将某些内容分配给IRAM部分。

    Debug子目录中的某个位置应该有一个扩展名为.map的内存映射文件。 这可能会提供更多线索。

    [/引述]

    我浏览了我的所有代码,只找到了这个。  但似乎是在.cfg文件/sys-bios处理过程中产生的一些影响,不是吗?

    /Debug/configPkg/package/cfg/0_pe674.c:#pragma data_section(ti_SysBIOS_States_HeapMem_Instance_0_buf__a,"iRAM");
    ./Debugg/configPkg/package/cfg/0_pe674.c:__t1_ti_SysBIOS_States_HeapMem_Instance_State__buf ti_SysBIOS_States_HeapMem_Instance_0_Bu f_A[1.6384万]__attribute__((section("IRAM")));
    ./Debug/configPkg/package/cfg/0_pe674.c:__far__ const CT__ti_SysBIOS_BIOS_heapSection ti_SysBIOS_BIOS_heapSection__C ="IRAM";

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这些设置是根据您的配置脚本中的某些代码生成的。 浏览脚本并检查是否有任何与HeapMem相关或BIOS相关的设置引用IRAM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我猜这是下面.cfg文件中的最后一条语句(现在已注释掉,导致警告消失)。

    BIOS.swiEnabled =真;
    bios.heapSize = 0x0.4万;
    //BIOS.heapSection ="IRAM";


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

    我认为这些设置是根据您的配置脚本中的某些代码生成的。 浏览脚本并检查是否有任何与HeapMem相关或BIOS相关的设置引用IRAM。

    [/引述]

    是,如上所述。  我将关闭此线程/标记为"已回答",并为出现的任何其他问题打开一个新线程。

    谢谢大家,

    罗伯特