链接器copytable意思

时间:2018-01-10 09:19:40

标签: c linker embedded

我试图在TRICORE TC275主板上使用任务编译器编译嵌入式C项目。使用链接器选项LINK_OPT += --user-provided-initialization-code时出现以下错误:

ltc E122: copy table construction error for "task1": The linker detected references to the copytable, while options indicate that custom initialization code is used.
  1. copytable是什么意思?
  2. 我该如何解决这个问题?
  3. 链接代码段

    /* Linker script for the TRICORE system. */
    
    architecture TC
    {
        endianness
        {
            little;
        }
    
        space linear
        {
            id = 1;
            mau = 8;
    
            map (src_offset=0x00000000, dest_offset=0x00000000, size=4G, dest=bus:fpi_bus);
    
            copytable (align = 1 << 2, copy_unit = 1, dest = linear);
        }
    
        bus fpi_bus
        {
            mau = 8;
            width = 32;
        }
    }
    

1 个答案:

答案 0 :(得分:0)

在任务编译器中,copytable用于在启动时将部分(.data等)从ROM复制到RAM。 您的程序可能正在使用自定义初始化代码来实现此目的 删除&#34; copytable&#34;从链接器脚本引用应该不会产生错误。

或者,您可以删除链接器选项

LINK_OPT += --user-provided-initialization-code

如果您不打算使用自定义初始化代码并使用链接器提供的copytable在启动时将常量从ROM复制到RAM。