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.

[参考译文] RTOS/TMS320C5534:在 DSP/BIOS 中添加自定义链接(.cmd)文件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/673807/rtos-tms320c5534-adding-a-custom-link-cmd-file-in-dsp-bios

器件型号:TMS320C5534

工具/软件:TI-RTOS

您好!

我的应用程序正在使用 C55x 和开发 envSV7、Linux、DSP/BIOS 5.42。 与 Linux 一样,图形化 gconf 实用程序不可用:(因此我正在手动编辑

我的.tcf 文件。 问题是、gconf 中有很多可作为"复选框选项"使用的功能、例如 Linux 中的 Juts unvailable

CLK 管理器(我发现它是一种艰难的方式...)。  那么,是否有一个文件我可以手动更改并替换 gconf 正在执行的操作?RAM 太小了

每次从头开始重新编译工程时、我都必须手动编辑生成的.cmd。

是否有方法(如 gconf config 面板中)指定 C sectionsectionis 应该改为 SARAM?

谢谢

Jacques

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

    我已通知软件团队。 他们将直接在此处发布反馈。

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

    雅克
    我不记得可以在 gconf 中完成的任何操作、也不能在脚本中完成。
    您对 CLK 具体有什么问题?

    对于 C 段、请查看 C55的文档、该文件名为 spru404.pdf。 找到"MEM 模块"部分、有一个"编译器段"选项卡小节。
    您将看到、您可以使用如下所示的语句分配.text:
    BIOS.MEM.TEXTSEG = prog.get ("SARAM");

    其他 C 段也是如此。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    感谢您的参与、但我在使其正常工作方面遇到了问题。
    因此、在我添加的.tcf 文件中
    BIOS.MEM.USERCOMMANDFILE = true;

    然后我创建了一个.cmd 文件、其中包含:

    micome-dspcfg.cmd

    部分{

    .text:{}> SARAM PAGE 0
    切换:{}> SARAM 第0页
    .bss:块(0x20000){}> SARAM PAGE 0
    .cinit:block (0x20000){}> SARAM PAGE 0
    .pinit:block (0x20000){}> SARAM PAGE 0

    第{
    .const:{}
    .printf (副本):{}
    }> SARAM PAGE 0

    .data:block (0x20000){}> SARAM PAGE 0
    .cio: {}> SARAM 第0页

    AUDIO_算法:{}> SARAM PAGE 0


    我还将链接器搜索路径设置为包含构建目录(查找) cfg.cmd 文件
    在项目设置中、我将.cmd 文件设置为我的文件。

    Unfortuenatly 找不到 cfg.cmd 文件

    我是否遗漏了什么?
    Thaks、
    Jacques
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新:我通过将文件名括在“”中来解决了此路径问题。 因为它包含一个"-"、我想链接器被骗了。
    但现在,我听到一个错误的声音,说:

    "./micome-dspcfg.cmd"、第137行:警告:绝对符号"_error"为
    重新定义
    "./micome-dspcfg.cmd"、第138行:警告:绝对符号"_clockLog"为
    重新定义
    "./micome-dspcfg.cmd"、第139行:警告:绝对符号"_go_Sema"是
    重新定义
    "./micome-dspcfg.cmd"、第140行:警告:绝对符号"_HK_Sema"是
    重新定义
    "./micome-dspcfg.cmd"、第141行:警告:绝对符号"_idl_busyObj"为
    重新定义
    "./micome-dspcfg.cmd"、第181行:警告:绝对符号"_clk_PRD"为
    重新定义

    通常、所有符号都定义了 tconf 生成的.cmd 文件、就好像它们被重新定义一样。

    请注意、我还验证了现在生成的.cmd 文件不会为编译器对象定义段、因此
    这是一个很大的进步

    有什么想法吗?
    Jacques
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我解决了这个问题!!!
    关键是真正从编译中排除 custom.cmd (rihgt click / exclude from build)+不要将生成的文件包含为 custom.cmd 的第一行。
    相反、请在链接器文件设置(libc.a 之前或之后)中添加./custom.cmd。

    因此,custom.cmd 现在仅包含:

    部分{

    .text:{}> SARAM PAGE 0
    切换:{}> SARAM 第0页
    .bss:块(0x20000){}> SARAM PAGE 0
    .cinit:block (0x20000){}> SARAM PAGE 0
    .pinit:block (0x20000){}> SARAM PAGE 0

    第{
    .const:{}
    .printf (副本):{}
    }> SARAM PAGE 0

    .data:block (0x20000){}> SARAM PAGE 0
    .cio: {}> SARAM 第0页

    AUDIO_算法:{}> SARAM PAGE 0



    链接器命令行会显示出来(只有链接器命令行的末尾是 shwon:

    l"./micome-dspcfg.cmd"-l"./smartdialer.cmd"-llibc.a

    (smartdialer.cmd 是我的用户 linke cmd 文件:)

    谢谢、
    Jacques