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.

[参考译文] AM68:链接器复制表问题

Guru**** 2550550 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1568575/am68-linker-copy-table-question

器件型号:AM68


工具/软件:

您好、  

我有一些代码要加载到外部 SDRAM 中、并在启动时复制到 DSP L2 并从中运行。  我很难按照文档操作。
到目前为止、我有:

很重要

  ...
     .L2_代码:         Load >__core_DDR_space、运行>__core_L2_space
}

L2_CODE 通过 pragma 完成;
#define CODE_SECTION INT     pragma (SET_CODE_SECTION(“.L2_CODE")“))
我将它放置在.l2_code 中所需的各种函数之前。

所以在地图中我得到:  

RL2_CODE 0 0000a6528240 00003400 RUN ADDR = 000064810000
0000a6528240 00000f80 input.obj (.l2_code)
0000a65291c0 00000d80 PROCESSOR.obj (.l2_code)
0000a6529f40 00000940 effect.obj (.l2_code) 

                  ...

这看起来不错、但现在我无法弄清楚创建复制表的方式或位置、该复制表会在启动时将.l2_code 段从__core_ddr_space 移动到__core_l2_space。

您能给我展示一下在引导时移动代码需要发生什么情况吗?

谢谢、
马特

                  

              

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

    尊敬的 Matt:

    您能否请确认您使用的编译器版本?
    此外、您还可以查看C7000 优化 C/C++编译器 v5.0.0.LTS 第 12.8.1 节“使用复制表进行引导加载“

    此致、
    Sivadeep

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

    大家好、我有 4.1.0.LTS 编译器。

    谢谢

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

    尊敬的 Matt:

    自: C7000 C/C++优化编译器 v5.0.0.LTS 用户指南

    您可以在复制表中使用内置链接运算符。

    您能告诉我在启动时移动代码需要发生什么情况吗?

    您能否检查一下并确认您的问题是否已解决?

    此致、
    Sivadeep

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

    您好、
    我将能够尝试作为一个测试,但我想创建一个段.L2_code 链接来自许多对象的函数。  如何编写此代码、以便从单个对象复制自定义段.L2_CODE、而不是.text?

    谢谢、
    马特

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

    您好、

    我可以尝试测试、但我想创建一个链接许多对象的函数的.L2_code 段

    请查看此部分

    如何编写此文件、以便从单个对象复制自定义段.L2_code、而不是.text?

    您能检查一下这个吗?  

    SECTIONS
    {
        .l2_code : {
            *.obj(.l2_code)
        } load > DDR_MEM, run > L2_MEM, table(BINIT)
        
        .binit:                         > DDR_C7x_0
    }

    此致、
    Sivadeep

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

    我会让你知道的。

    谢谢、
    马特

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

    谢谢 Matt。 使该线程保持在等待状态。

    此致、
    Sivadeep