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.

[参考译文] LAUNCHXL-F28P65X:使用 syscfg 的 F28P65 RAM 分配

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1328567/launchxl-f28p65x-f28p65-ram-allocation-wth-syscfg

器件型号:LAUNCHXL-F28P65X
主题中讨论的其他器件:SysConfigC2000WARE

您好!

我使用的是 F28P65 LaunchPad 、因此我开始构建一个 可正常工作的单个 CPU 的闪烁 LED 示例。

现在, 我尝试 创建一个大的静态32位 数组,需要在我的应用程序. 我看到在 CCS 存储器分配窗口中、它存储在 RAMLS5部分中。 但当我尝试超过512个元素时、大小会超过该 段。

我在 SYSCFG 中看到了 一 节关于链接器命令文件配置的内容,因此我添加了一个 memComcombination,将 RAMLS5 RAMLS6和 RAMLS7分组。  但问题仍然存在。 似乎不会生成任何文件。

有什么建议吗?  

谢谢你。

此致

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

    尊敬的 Roberto:

    您能否对编译器错误以及它在链接器命令文件中的错误进行截屏?

    如果您在 SysConfig 中使用链接器命令工具、则需要打开顶部的全局参数并激活命令工具。

    此致!

    马瑞安

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

    大家好。 首先感谢您的帮助。  

    我没有看到用于激活工具的命令。 所以我尝试了一下。 但仍然存在一些问题。

    为了

    我已经向 led ex_blinky.c 添加了这些行

    #define samples 1024

    uint32_t i;
    uint32_t data[samples];

    而更多的是在 主循环开始之前、

    for (i=0;i<样片;i++) data[i]= i;

    来填充阵列。

    我在控制台中收到此信息

    构建目标:"led_ex1_blinky.out"
    调用:C2000链接器
    "c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000 /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include -v28 -ml -mt -cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_flash --define=debug --define=CPF8 --define=_LAUNCHXL_f28P65X /ti/c2000/C2000Ware_5_00_00_00 /syscfg/board.obj /syscfg/device_cmd.obj /syscfg/c2000ware_libraries.obj /device/device.obj /device/f28p65x_codestartbranch.obj /ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib  

    "../28p65x_generic_flash_lnk_cpu1.cmd"、第69行:错误#10099-D:程序将无法装入可用内存中、或该段包含一个调用站点、该调用站点需要一个无法为此段生成的 trampoline。 针对".bss"大小0x802 PAGE 0的段运行对齐/分块失败。  可用存储器范围:
      RAMLS5      大小:0x800       未使用:0x800       最大孔数:0x800     
    错误#10010:链接过程中遇到错误;未构建"led_ex1_blinky.out"
     
    >>编译失败
    Makefile:144:食谱目标'leed_ex1_blinky.out'失败
    gmake[1]:***[LED_ex1_blinky.out]错误1
    Makefile:140:目标"全部"的食谱失败
    gmake:***[全部]错误2

    ****构建完成****

    我在闪存中编译 以便进行测试

    在28p65x_generic_flash_cpu1.cmd 中获取.bss 定义中的错误

    部分
    {
      代码开始       :>开始
      .text           :>> FLASH_BANK0 | FLASH_BANK1、ALIGN (8)
      .cinit          :> FLASH_BANK0、align (8)
      .switch         :> FLASH_BANK0、ALIGN (8)
      .reset          :> reset,type = DSECT /*未使用,*/

      .stack          :> RAMM1
    #if defined (__TI_EABI __)
      .bss            :> RAMLS5     这里是错误
      .bss:输出:     > RAMLS3
      init_array     :> flash_BANK0、align (8)
      .const          :> FLASH_BANK0、ALIGN (8)
      .data           :> RAMLS5
      .sysmem         :> RAMLS4
    #else .......................................................................... 等等

    在 C2000 syscfg 中添加连接器命令文件 CMD0

    RAMLS 存储器组合0    

    RAMLS5、RAMLS6、RAMLS7。

    现在、我激活链接器 CMD 配置。

    因为我遇到了很多冲突、所以才生成文件!

    构建目标:"led_ex1_blinky.out"
    调用:C2000链接器
    "c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000 /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include -v28 -ml -mt -cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_flash --define=debug --define=CPF8 --define=_LAUNCHXL_f28P65X /ti/c2000/C2000Ware_5_00_00_00 /syscfg/board.obj /syscfg/device_cmd.obj /syscfg/c2000ware_libraries.obj /device/device.obj /device/f28p65x_codestartbranch.obj /ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib  

    "SYSCFG/DEVICE_cmd.cmd"、第13行:错误#10263:已指定 RAMM0存储器范围
    "syscfg/device_cmd.cmd"、第13行:错误#10264:RAMM0存储器范围与现有存储器范围 RAMM0重叠
    "SYSCFG/DEVICE_cmd.cmd"、第14行:错误#10263:已指定 RAMM1存储器范围
    "syscfg/device_cmd.cmd"、第14行:错误#10264:RAMM1存储器范围与现有存储器范围 RAMM1重叠
    "SYSCFG/DEVICE_cmd.cmd"、第15行:错误#10263:已指定了 CLOCPURAM 存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第15行:错误#10264:CLOCPURAM 存储器范围与现有存储器范围重叠 CLOCPURAM
    "SYSCFG/DEVICE_cmd.cmd"、第16行:错误#10263:已指定 CPUTOCLARAM 存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第16行:错误#10264:CPUTOCLARAM 存储器范围与现有存储器范围 CPUTOCLARAM 重叠
    "SYSCFG/DEVICE_cmd.cmd"、第17行:错误#10263:已指定了 CLATODMARAM 内存范围
    "SYSCFG/DEVICE_cmd.cmd"、第17行:错误#10264:CLATODMARAM 存储器范围与现有存储器范围重叠 CLATODMARAM
    "SYSCFG/DEVICE_cmd.cmd"、第18行:错误#10263:已指定 DMATOCLARAM 存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第18行:错误#10264:DMATOCLARAM 存储器范围与现有存储器范围重叠 DMATOCLARAM
    "SYSCFG/DEVICE_cmd.cmd"、第21行:错误#10263:已指定 RAMLS0内存范围
    "syscfg/device_cmd.cmd"、第21行:错误#10264:RAMLS0内存范围与现有内存范围 RAMLS0重叠
    "syscfg/device_cmd.cmd"、第22行:错误#10263:已指定 RAMLS1内存范围
    "syscfg/device_cmd.cmd"、第22行:错误#10264:RAMLS1内存范围与现有内存范围 RAMLS1重叠
    "SYSCFG/DEVICE_cmd.cmd"、第23行:错误#10263:已指定 RAMLS2内存范围
    "syscfg/device_cmd.cmd"、第23行:错误#10264:RAMLS2存储器范围与现有存储器范围 RAMLS2重叠
    "SYSCFG/DEVICE_cmd.cmd"、第24行:错误#10263:已指定 RAMLS3内存范围
    "syscfg/device_cmd.cmd"、第24行:错误#10264:RAMLS3内存范围与现有内存范围 RAMLS3重叠
    "syscfg/device_cmd.cmd"、第25行:错误#10263:已指定 RAMLS4内存范围。
    "syscfg/device_cmd.cmd"、第25行:错误#10264:RAMLS4内存范围与现有内存范围 RAMLS4重叠
    "syscfg/device_cmd.cmd"、第26行:错误#10264:memCombination0内存范围与现有内存范围 RAMLS5重叠
    "syscfg/device_cmd.cmd"、第26行:错误#10264:memCombination0内存范围与现有内存范围 RAMLS6重叠
    "syscfg/device_cmd.cmd"、第26行:错误#10264:memCombination0内存范围与现有内存范围 RAMLS7重叠
    "SYSCFG/DEVICE_cmd.cmd"、第27行:错误#10263:已指定 RAMD0内存范围
    "syscfg/device_cmd.cmd"、第27行:错误#10264:RAMD0存储器范围与现有存储器范围 RAMD0重叠
    "SYSCFG/DEVICE_cmd.cmd"、第28行:错误#10263:已指定 RAMD1内存范围
    "syscfg/device_cmd.cmd"、第28行:错误#10264:RAMD1存储器范围与现有存储器范围 RAMD1重叠
    "SYSCFG/DEVICE_cmd.cmd"、第29行:错误#10263:已指定 RAMGS0存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第29行:错误#10264:RAMGS0存储器范围与现有存储器范围重叠 RAMGS0
    "syscfg/device_cmd.cmd"、第30行:错误#10263:已指定了 RAMGS1内存范围
    "syscfg/device_cmd.cmd"、第30行:错误#10264:RAMGS1存储器范围与现有存储器范围 RAMGS1重叠
    "SYSCFG/DEVICE_cmd.cmd"、第31行:错误#10263:已指定了 RAMGS2存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第31行:错误#10264:RAMGS2存储器范围与现有存储器范围 RAMGS2重叠
    "SYSCFG/DEVICE_cmd.cmd"、第32行:错误#10263:已指定 RAMGS3内存范围
    "SYSCFG/DEVICE_cmd.cmd"、第32行:错误#10264:RAMGS3内存范围与现有内存范围 RAMGS3重叠
    "SYSCFG/DEVICE_cmd.cmd"、第33行:错误#10263:已指定 RAMGS4存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第33行:错误#10264:RAMGS4存储器范围与现有存储器范围重叠 RAMGS4
    "SYSCFG/DEVICE_cmd.cmd"、第34行:错误#10263:已指定 RAMD2内存范围
    "syscfg/device_cmd.cmd"、第34行:错误#10264:RAMD2存储器范围与现有存储器范围 RAMD2重叠
    "SYSCFG/DEVICE_cmd.cmd"、第35行:错误#10263:已指定 RAMD3内存范围
    "syscfg/device_cmd.cmd"、第35行:错误#10264:RAMD3内存范围与现有内存范围 RAMD3重叠
    "SYSCFG/DEVICE_cmd.cmd"、第36行:错误#10263:已指定 RAMD4内存范围
    "syscfg/device_cmd.cmd"、第36行:错误#10264:RAMD4存储器范围与现有存储器范围 RAMD4重叠
    "SYSCFG/DEVICE_cmd.cmd"、第37行:错误#10263:已指定 RAMD5内存范围
    "syscfg/device_cmd.cmd"、第37行:错误#10264:RAMD5存储器范围与现有存储器范围 RAMD5重叠
    "SYSCFG/DEVICE_cmd.cmd"、第38行:错误#10263:已指定 RAMLS8内存范围
    "syscfg/device_cmd.cmd"、第38行:错误#10264:RAMLS8存储器范围与现有存储器范围 RAMLS8重叠
    "syscfg/device_cmd.cmd"、第39行:错误#10263:已指定 RAMLS9内存范围。
    "syscfg/device_cmd.cmd"、第39行:错误#10264:RAMLS9内存范围与现有内存范围 RAMLS9重叠
    "SYSCFG/DEVICE_cmd.cmd"、第40行:错误#10263:已指定 CPU1TOCPU2RAM 内存范围
    "syscfg/device_cmd.cmd"、第40行:错误#10264:CPU1TOCPU2RAM 存储器范围与现有存储器范围 CPU1TOCPU2RAM 重叠
    "SYSCFG/DEVICE_cmd.cmd"、第41行:错误#10263:已指定 CPU2TOCPU1RAM 内存范围
    "syscfg/device_cmd.cmd"、第41行:错误#10264:CPU2TOCPU1RAM 存储器范围与现有存储器范围 CPU2TOCPU1RAM 重叠
    "SYSCFG/DEVICE_cmd.cmd"、第42行:错误#10263:已指定 CANA_MSG_RAM 内存范围
    "SYSCFG/DEVICE_CMD.cmd"第42行:错误#10264:CANA_MSG_RAM 存储器范围与现有存储器范围重叠 CANA_MSG_RAM
    "SYSCFG/DEVICE_cmd.cmd"、第43行:错误#10263:已指定了 CANB_MSG_RAM 存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第43行:错误#10264:CANB_MSG_RAM 存储器范围与现有存储器范围 CANB_MSG_RAM 重叠
    "SYSCFG/DEVICE_cmd.cmd"、第44行:错误#10264:FLASH_BANK0存储器范围与现有存储器范围重叠开始
    "SYSCFG/DEVICE_cmd.cmd"、第44行:错误#10263:已指定了 FLASH_BANK0存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第44行:错误#10264:FLASH_BANK0存储器范围与现有存储器范围 FLASH_BANK0重叠
    "SYSCFG/DEVICE_cmd.cmd"、第45行:错误#10263:已指定了 FLASH_BANK1存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第45行:错误#10264:FLASH_BANK1存储器范围与现有存储器范围 FLASH_BANK1重叠
    "SYSCFG/DEVICE_cmd.cmd"、第46行:错误#10263:已指定了 FLASH_BANK2存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第46行:错误#10264:FLASH_BANK2存储器范围与现有存储器范围 FLASH_BANK2重叠
    "SYSCFG/DEVICE_cmd.cmd"、第49行:错误#10263:已指定重置存储器范围
    "SYSCFG/DEVICE_cmd.cmd"、第49行:错误#10264:复位存储器范围与现有存储器范围复位重叠
    "../28p65x_generic_flash_lnk_cpu1.cmd"、第69行:错误#10099-D:程序将无法装入可用内存中、或该段包含一个调用站点、该调用站点需要一个无法为此段生成的 trampoline。 针对".bss"大小0x802 PAGE 0的段运行对齐/分块失败。  可用存储器范围:
      RAMLS5      大小:0x800       未使用:0x800       最大孔数:0x800     
    错误#10010:链接过程中遇到错误;未构建"led_ex1_blinky.out"
     
    >>编译失败
    Makefile:144:食谱目标'leed_ex1_blinky.out'失败
    gmake[1]:***[LED_ex1_blinky.out]错误1
    Makefile:140:目标"全部"的食谱失败
    gmake:***[全部]错误2

    ****构建完成****

    所以 、我认为 这会与28p65x_generic_flash_cpu1.cmd 相冲突。

    但是、如果将其排除在生成该文件之外 、则会出现一些错误。 似乎生成的新文件不完整

    构建目标:"led_ex1_blinky.out"
    调用:C2000链接器
    "c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000 /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib /ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include -v28 -ml -mt -cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_flash --define=debug --define=CPF8 --define=_LAUNCHXL_f28P65X /ti/c2000/C2000Ware_5_00_00_00 /syscfg/board.obj /syscfg/device_cmd.obj /syscfg/c2000ware_libraries.obj /device/device.obj /device/f28p65x_codestartbranch.obj /ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib  

    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段".text"
    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段".bss"
    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段".const"
    错误#10430-D:__attribute__(ramfunc)或--ramfunc=on 生成的".TI.ramfunc"段需要一个 SECTIONS 规范才能起作用。
    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段".data"
    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段".cinit"
    错误#10010:链接过程中遇到错误;未构建"led_ex1_blinky.out"
     
    >>编译失败
    Makefile:143:目标'leed_ex1_blinky.out'的配方失败
    gmake[1]:***[LED_ex1_blinky.out]错误1
    Makefile:139:目标"全部"的食谱失败
    gmake:***[全部]错误2

    ****构建完成****

    我错了吗?

    感谢您发送编修。

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

    尊敬的 Roberto:

    请确保在工程中排除原始.cmd 文件。 (RAM 或闪存)链接器命令工具将生成其自己的项目将引用的.cmd 文件。

    在 SYSCFG 中、您能向我展示您的全局参数设置吗? 另外、.bss 看起来需要为该段分配更多的存储器。 在链接器命令工具中、您可以在 Section -> C28x Compiler Section -> BSS 下直接向.bss 添加更多存储器。

    此致!

    马瑞安  

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

    您好、Ryan、

    您建议 在 C28x 编译器部分中修改 BSS。 但在添加新的 CMD 段后必须执行另一个步骤:必须加载 Setup xxx 默认值、否则链接器的另一部分将为空并导致很多错误。

    在 SysConfig 中

    链接器命令文件

    添加一个新的 CMD (即 CMD0 或在下重命名)

    按"Setup xxx Default (设置 xxx 默认)"按钮

    在 C28x 编译器段中进行修改 BSS 在加载存储器中添加更多段(即 RAMLS5、RAMLS6+1)

    激活 在全局参数中生成的:

    活动的一个链接器 CMD 配置。

    当前有效链接器 CMD 配置 CMD0。

    编译和祝您好运!

    非常感谢您的帮助

    此致