⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coldfire.ld

📁 开放源码实时操作系统源码.
💻 LD
📖 第 1 页 / 共 2 页
字号:
    .data _vma_ : _lma_                                                             \
    {                                                                               \
        __ram_data_start = ABSOLUTE(.);                                             \
        *(.data*)                                                                   \
        __GOT1_START__ = ABSOLUTE(.);                                               \
        *(.got1)                                                                    \
        __GOT1_END__ = ABSOLUTE(.);                                                 \
        . = ALIGN (4);                                                              \
          /* Put .ctors and .dtors next to the .got2 section, so that */            \
          /* the pointers get relocated with -mrelocatable.           */            \
        __CTOR_LIST__ = ABSOLUTE(.);                                                \
        KEEP(*(SORT(.ctors*)));                                                     \
        __CTOR_END__ = ABSOLUTE(.);                                                 \
        __DTOR_LIST__ = ABSOLUTE(.);                                                \
        KEEP(*(SORT(.dtors*)))                                                      \
        __DTOR_END__ = ABSOLUTE(.);                                                 \
        . = ALIGN(4);                                                               \
        KEEP(*( SORT (.ecos.table.*)));                                             \
        . = ALIGN (4);                                                              \
          *( .2ram.*) ;                                                             \
        __GOT2_START__ = ABSOLUTE(.);                                               \
        *(.got2)                                                                    \
        __GOT2_END__ = ABSOLUTE(.);                                                 \
        __GOT_START = ABSOLUTE(.);                                                  \
        _GLOBAL_OFFSET_TABLE_ = ABSOLUTE(. + 32768);                                \
        _SDA_BASE_ = ABSOLUTE(.);                                                   \
        *(.got.plt) *(.got)                                                         \
        __GOT_END__ = ABSOLUTE(.);                                                  \
        *(.dynamic)                                                                 \
        *(.eh_frame)                                                                \
          /* We want the small data sections together, so single-instruction */     \
          /* offsets can access them all, and initialized data all before    */     \
          /* uninitialized, so we can shorten the on-disk segment size.      */     \
        __SDATA_START__ = ABSOLUTE(.);                                              \
        *(.sdata) *(.sdata.*)                                                       \
        __SDATA2_START__ = ABSOLUTE(.);                                             \
        *(.sdata2*)                                                                 \
        . = ALIGN(4);                                                               \
        __ram_data_end = ABSOLUTE(.);                                               \
        __ram_data_size = ABSOLUTE (.) - ABSOLUTE(__ram_data_start);                \
    }                                                                               \
    > _region_                                                                      \
    __rom_data_start = LOADADDR(.data);                                             \
    __rom_data_size = SIZEOF(.data);                                                \
    __rom_data_end = __rom_data_start + __rom_data_size;

#define SECTION_bss(_region_, _vma_, _lma_)                                     \
    .bss _vma_ : _lma_                                                          \
    {                                                                           \
        __bss_start = ABSOLUTE (.);                                             \
        FORCE_OUTPUT;                                                           \
        *(.dynbss*) *(.bss*) *(COMMON) *(.sbss*) *(.scommon*)                   \
        . = ALIGN(4);                                                           \
        __bss_end = ABSOLUTE (.);                                               \
        __bss_size = ABSOLUTE (.) - ABSOLUTE(__bss_start);                      \
    }                                                                           \
    > _region_

#define SECTION_stab    \
    .stab 0 (NOLOAD) :  \
    {                   \
        *(.stab)        \
    }

#define SECTION_stabstr     \
    .stabstr 0 (NOLOAD) :   \
    {                       \
        *(.stabstr)         \
    }

#define SECTION_comment     \
    .comment 0 (NOLOAD) :   \
    {                       \
        *(.comment)         \
    }

#define SECTION_uninvar(_region_, _vma_, _lma_)                                 \
    .uninvar _vma_ : _lma_                                                      \
    {                                                                           \
        __uninvar_start = ABSOLUTE (.);                                         \
        FORCE_OUTPUT;                                                           \
        *(.uninvar);                                                            \
        . = ALIGN(4);                                                           \
        __uninvar_end = ABSOLUTE (.);                                           \
        __uninvar_size = ABSOLUTE (.) - ABSOLUTE(__uninvar_start);              \
    }                                                                           \
    > _region_

#define SECTION_romvec(_region_, _vma_, _lma_)                                  \
    .romvec _vma_ : _lma_                                                       \
    {                                                                           \
        __romvec_start = ABSOLUTE (.);                                          \
        FORCE_OUTPUT;                                                           \
        KEEP(*(.romvec));                                                       \
        . = ALIGN(4);                                                           \
        __romvec_end = ABSOLUTE (.);                                            \
        __romvec_size = ABSOLUTE (.) - ABSOLUTE(__romvec_start);                \
    }                                                                           \
    > _region_

#define SECTION_ramvec(_region_, _vma_, _lma_)                                  \
    .ramvec _vma_ : _lma_                                                       \
    {                                                                           \
        __ramvec_start = ABSOLUTE (.);                                          \
        FORCE_OUTPUT;                                                           \
        KEEP(*(.ramvec));                                                       \
        . = ALIGN(4);                                                           \
        __ramvec_end = ABSOLUTE (.);                                            \
        __ramvec_size = ABSOLUTE (.) - ABSOLUTE(__ramvec_start);                \
    }                                                                           \
    > _region_
    
#define SECTION_virtual_vec_table(_region_, _vma_, _lma_)                                   \
    .virtual_vec_table _vma_ : _lma_                                                        \
    {                                                                                       \
        __virtual_vec_table_start = ABSOLUTE (.);                                           \
        . += 0x100;                                                                         \
        __virtual_vec_table_end = ABSOLUTE (.);                                             \
        __virtual_vec_table_size = ABSOLUTE (.) - ABSOLUTE(__virtual_vec_table_start);      \
    }                                                                                       \
    > _region_

#define SECTIONS_END                                \
    SECTION_stab                                    \
    SECTION_stabstr                                 \
    SECTION_comment                                 \
    . = ALIGN(0x4); _end = .; PROVIDE (end = .);

#include <pkgconf/system.h>
#include CYGHWR_MEMORY_LAYOUT_LDI

hal_virtual_vector_table = __virtual_vec_table_start;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -