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.

[参考译文] CODECOMPOSER:CCS CMD 文件和 GEL 文件、以适应更大的代码大小

Guru**** 2989100 points

Other Parts Discussed in Thread: OMAP-L137

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1662907/codecomposer-ccs-cmd-file-and-gel-files-to-fit-larger-code-size

部件号: CODECOMPOSER
主题中讨论的其他器件: OMAP-L137

您好:

我们的代码太大、无法配置 cmd 文件和 GEL 文件、下面的 CCS 中出现了错误、下面是 cmd 文件配置和随附 GEL 文件。 当我们尝试将.text 和.far 移动到 cmd 文件中的 EMIFBSDRAM 中时、当我们启动 CCS 时、调试器无法找到 main 来不再停止。 当我们尝试移动其他部分时、调试器出现验证错误。 有人能概括地解释一下我们如何将.text 和.far 段等 CCS 代码段移动到我们存储器映射中更大的存储器中、调试器仍然可以找到 main 函数(即某些段是否始终必须在同一存储器映射段中放在一起)? 这是否需要修改其他文件或 CCS 调试配置、以便 JTAG 可以单步执行代码?  再次感谢您。  

(CCS 出错)

错误#10099-D:程序无法放入可用的内存中、或者段包含一个调用点、该调用点需要无法为该段生成蹦床函数、或者该段包含填充函数。 对于段“.far“大小 0x2082c、带对齐的运行放置失败。  可用存储器范围:
  IRAM     大小:0x40000   未使用:0x18a0c   最大孔:0x18a0c   

(CMD 文件配置)

移动数据
{
  DSPL2ROM:org = 0x700000、len = 0x100000
  DSPL2RAM:org = 0x800000、len = 0x40000
  DSPL1PRAM : org = 0xe00000、len = 0x8000
  DSPLDPRAM:org = 0xf00000、len = 0x8000
  SHDSPL2ROM:org = 0x11700000、len = 0x100000
  IRAM:org = 0x11800000、len = 0x40000
  CACHE_L1P:org = 0x11e00000、len = 0x8000
  CACHE_L1D:org = 0x11f00000、len = 0x8000
  EMIFASSDRAM : org = 0x40000000、len = 0x8000000
  EMIFACS2:org = 0x60000000、len = 0x2000000
  EMIFACS3:org = 0x62000000、len = 0x2000000
  EMIFACS4:org = 0x64000000、len = 0x2000000
  EMIFACS5:org = 0x66000000、len = 0x2000000
  L3_CBA_RAM_ID:org = 0x80000000、len = 0x1000
  L3_CBA_RAM_bl:org = 0x80001000、len = 0xf000
  L3_CBA_RAM:org = 0x80010000、len = 0x10000
  EMIFBSDRAM:org = 0xC0000000、len = 0x10000000
}

很重要
{
  .text:load > IRAM
  .ti.decompress: load > IRAM
  .stack:load > IRAM
  组:LOAD > L3_CBA_RAM
  {
    .bss:
    .neardata:
    .rodata:
  }
  .cinit:LOAD > L3_CBA_RAM
  .pinit:load > L3_CBA_RAM
  .init_array:load > IRAM
  .const:load > L3_CBA_RAM
  .data:load > IRAM
  .fardata:load > IRAM
  .switch:load > L3_CBA_RAM
  .sysmem:load > IRAM
  .far:load > IRAM
  .args:load > IRAM align = 0x4、fill = 0{_argsize = 0x0;}
  .cio:LOAD > L3_CBA_RAM
  .TI.handler_table:load > IRAM
  .c6xabi.exidx:load > IRAM
  .c6xabi.extab:load > IRAM
  .id:load > L3_CBA_RAM_ID
  .clk:load > IRAM
  .prd:load > IRAM
  .swi:load > IRAM
  .IRAM:load > tsk
  .idl:load > IRAM
  .idlcal:load > IRAM
  .hwi_vec:load > IRAM
  .sysdata:load > IRAM
  .dsm:load > IRAM
  .mem:load > iramfreertosdsp.gel 
  .bios:加载> IRAM
  .gio:load > IRAM
  .sys:load > IRAM
  .sysregs:LOAD > IRAM
  .gblinit:load > IRAM
  .sysinit:load > IRAM
  .trcdata:load > IRAM
  .hwi:load > IRAM
  .RTDx_text:load > IRAM
  .tsk_idle$stk:load > IRAM
  .log_system$buf:load > IRAM
  .RTDx_DATA:LOAD > IRAM
  .hst1:load > IRAM
  .hst0:load > IRAM
  .trace:load > IRAM
  .HST:LOAD > IRAM
  .log:load > IRAM
  .pip:load > IRAM
  .sts:load > IRAM
  .heap:load > L3_CBA_RAM
  .L3_CBA_RAM_ID:LOAD > L3_CBA_RAM
  .L3_CBA_ram_bl:load > L3_CBA_RAM_BL
  .L3_CBA_RAM$heap:load > L3_CBA_RAM
  .printf:load > L3_CBA_RAM
  .ppinfo:load > IRAM
  .ppdata:load > IRAM
  .binit:load > IRAM
  .vecs:load > IRAM
  .obj:load > IRAM

}

再次感谢您。

 

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

    您好:

    我提请编译器专家注意这一主题,他们将能够进一步提供帮助。

    谢谢

    Ki

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

    您使用的是什么 TI CPU?

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

    你好,保罗,谢谢你。 它是 与我们的 SW 一起位于金属上的 OMAP-L137 (无 BIOS/TIRTOS) 、因此我们需要了解有关 CCS 中的 TI cmd 文件、编译器等和调试配置的更多信息、以便我们可以将不断增长的代码正确地移动到更大的 RAM 中。  

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

    您好:

    请注意、请参阅 OMAP-L137 上的此 E2E 常见问题解答: 关于适用于 AM335x、AM437x、OMAP-L13x、C674x、K2G 的处理器 SDK TI-RTOS 的注意事项 AMIC110、AMIC120 器件 

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

    阳光明媚

    很高兴再次见到你。 如上所述、这些器件上的有限支持。 以下是基于文档和之前的 E2E 搜索的 AI 辅助响应、可能会对您有所帮助。  

    e2e.ti.com/.../c6000_5F00_sdram_5F00_guide.html

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

    你好 Mukul、

    谢谢。我们未使用 TI-RTOS 或 BIOS(请参阅上面的原始文章)。  

    我们知道不支持 BIOS/TI-RTOS(这就是我们不使用 BIOS/TI-RTOS 和我们自己的软件的原因)、但 OMAP-L137 仍然得到支持、而且没有淘汰它的计划(没有停止 OMAPL137 生产的计划)。这是否发生了变化? 这就是我们一直使用 OMAP-L137 的原因。

    无论如何、请原谅混淆----澄清--我的问题是试图了解 TI 编译器、 调试配置、CCS 项目、GEL 文件以及一般的 cmd 文件(它们不仅与 OMAP-L137 项目一起使用、而且我已经将它们与我们其他产品上使用的 RM42 和 TIVA 的其他 CCS 项目一起使用):

    -无论处理器如何,在 TI cmd 文件中, 这些 cmd 文件中的某些部分是否总是必须在同一个存储器映射部分在一起,这样我们就必须将它们一起移动?

    -无论处理器 如何,您能解释一下如何将 CCS 代码段(如.text 和.far 段)移动到内存映射中更大的内存中,调试器仍然可以找到主函数吗? 在我们启动调试器后、允许调试配置定位并从“main“开始的是什么?  

    -无论处理器如何,这是否需要修改其他文件(如 GEL 文件)或 CCS 调试配置,以便 JTAG 可以单步定位代码?   

    再次感谢您。

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

    您好 Anshu、

    谢谢。我们未使用 TI-RTOS 或 BIOS(请参阅上面的原始文章)。  

    我们知道不支持 BIOS/TI-RTOS(这就是我们不使用 BIOS/TI-RTOS 和我们自己的软件的原因)、但 OMAP-L137 仍然得到支持、而且没有淘汰它的计划(没有停止 OMAPL137 生产的计划)。这是否发生了变化? 这就是我们一直使用 OMAP-L137 的原因。

    无论如何、请原谅混淆----澄清--我的问题是试图了解 TI 编译器、 调试配置、CCS 项目、GEL 文件以及一般的 cmd 文件(它们不仅与 OMAP-L137 项目一起使用、而且我已经在我们的其他产品上使用了 RM42 和 TIVA):

    -无论处理器如何,在 TI cmd 文件中, 这些 cmd 文件中的某些部分是否总是必须在同一个存储器映射部分在一起,这样我们就必须将它们一起移动?

    -无论处理器 如何,您能解释一下如何将 CCS 代码段(如.text 和.far 段)移动到内存映射中更大的内存中,调试器仍然可以找到主函数吗? 在我们启动调试器后、允许调试配置定位并从“main“开始的是什么?  

    -无论处理器如何,这是否需要修改其他文件(如 GEL 文件)或 CCS 调试配置,以便 JTAG 可以单步找到代码?   

    再次感谢您。

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

    谢谢你 Ki。 我认为下面有一个误解、我的问题根本与 TI-RTOS 无关(我们不使用 TI-RTOS)、也与如何了解如何修改 CCS 编译器、 命令文件段、GEL 文件等的处理器无关 或者大家是否在暑假外出、给他们更多的时间来回应?