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.

[参考译文] 编译器/TMS320C6713:在内存中加载程序段,链接器脚本。

Guru**** 2553260 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/584671/compiler-tms320c6713-loading-program-sections-in-memory-linker-script

部件号:TMS320C6713

工具/软件:TI C/C++编译器

您好,

假设我编写一个链接器脚本来对DSP处理器进行编程,例如TMS320C6713。 我将.text部分放在地址0x000到0x300 (闪存地址)上,将.data部分放在内存范围0x600到0x700 (RAM地址)中。 我的问题是:

a)处理器如何执行此程序,它是否会从闪存执行.text部分并在SRAM中加载.data部分,如链接器脚本中所述。

b)如果在SRAM中加载完整程序,则在b/w .text部分和.data部分之间的间隙(即0x300到0x600之间的间隙)如何?此间隙是否会在RAM中保留为空白,如链接程序脚本中未提及,如果是,是否属于 碎片问题??

C)输出目标文件如何将这些非连续部分放置在目标文件中???

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

    在TI文档中,您所说的“链接器脚本”称为“链接器命令文件”。  两个术语都不比另一个术语更好。  它们只是同一件事的不同短语。

    aimal Khan 说:
    处理器如何执行此程序[/QUOT]

    这取决于打开电源时发生的情况的详细信息。  系统通常通过引导至特定中断(通常称为重置引导程序)来启动。  您有责任注意这些细节。  这包括让系统执行启动代码。  

    aimal Khan 说:
    如果在SRAM中加载完整程序,则GAP b/w .text部分和.data部分如何

    如果您的代码不存在导致执行以某种方式消失的错误,则这些内存位置将保持不变。  

    aimal Khan 说:
    这不是 一种碎片问题吗?[/QUOT]

    这不是在实践中发生的。  实际上,链接程序命令文件中的memory指令包含准确的系统内存映射。  因此,确实出现的孔往往很小,或者由于程序比可用内存小得多。

    aimal Khan 说:
    对于输出目标文件,如何将这些不连续的部分放置在目标文件中???[/QUOT]

    目标文件中某个部分的原始数据的位置目标文件格式决定。  我建议您对斜体字执行互联网搜索。

    以下是一些可能有用的Wiki文章。

    谢谢,此致,

    -George