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

📄 adsp-21262_c.ldf

📁 ADI 公司的DSP ADSP21262 EZ-KIT LITE开发板的全部源代码
💻 LDF
字号:
#define FILE_DATA_WIDTH 16
ARCHITECTURE(ADSP-21262)

//
//   ADSP-21262 Memory Map:
//   ------------------------------------------------
//                    0x0000 0000 to 0x0003 FFFF  IOP Regs
//           Block0   0x0004 0000 to 0x0004 3FFF  Long word (64) Space (1MB RAM)
//           Block0   0x0004 4000 to 0x0005 7FFF  Internal Memory (Reserved 5MB)
//           Block0   0x0005 8000 to 0x0005 FFFF  Long word (64) Space (2MB ROM)

//           Block1   0x0006 0000 to 0x0006 3FFF  Long word (64) Space (1MB RAM)
//           Block1   0x0006 4000 to 0x0007 7FFF  Internal Memory (Reserved 5MB)
//           Block1   0x0007 8000 to 0x0007 FFFF  Long word (64) Space (2MB ROM)

//           Block0   0x0008 0000 to 0x0008 7FFF  Normal word (32) Space (1MB RAM)
//           Block0   0x0008 8000 to 0x000A FFFF  Internal Memory (Reserved 5MB)
//           Block0   0x000B 0000 to 0x000B FFFF  Normal word (32) Space (2MB ROM)
//   ------------------------------------------------
//                    0x000A 0000 to 0x000A AAAA  48-bit addresses
//   ------------------------------------------------
//           Block1   0x000C 0000 to 0x000C 7FFF  Normal word (32) Space (1MB RAM)
//           Block1   0x000C 8000 to 0x000E FFFF  Internal Memory (Reserved 5MB)
//           Block1   0x000F 0000 to 0x000F FFFF  Normal word (32) Space (2MB ROM)
//   ------------------------------------------------
//                    0x000E 0000 to 0x000E AAAA  48-bit addresses
//   ------------------------------------------------
//           Block0   0x0010 0000 to 0x0010 FFFF  Short word (16) Space (1MB RAM)
//           Block0   0x0011 0000 to 0x0015 FFFF  Internal Memory (Reserved 5MB)
//           Block0   0x0011 0000 to 0x0015 FFFF  Internal Memory (Reserved 5MB)
//           Block0   0x0016 0000 to 0x0017 FFFF  Short word (16) Space (2MB ROM)

//           Block1   0x0018 0000 to 0x0018 FFFF  Short word (16) Space (1MB RAM)
//           Block1   0x0019 0000 to 0x001D FFFF  Internal Memory (Reserved 5MB)
//           Block1   0x001E 0000 to 0x001F FFFF  Short word (16) Space (2MB ROM)

//   ------------------------------------------------
//   External memory  0x0100 0000 to 0x02FF FFFF
//   ------------------------------------------------

// This linker description file allocates:
//         Internal 256 words of run-time header in memory block 0
//                  256 words of initialization code in memory block 0
//                  16K words of C code space in memory block 0
//                   7K words of C PM data space in memory block 0
//                  32K words of C DM data space in memory block 1
//                   8K words of C heap space in memory block 1
//                   8K words of C stack space in memory block 1

SEARCH_DIR( $ADI_DSP\212xx\lib )

#ifdef _ADI_THREADS
#ifdef __ADI_LIBEH__
$LIBRARIES = libehmt.dlb, libc26xmt.dlb, libiomt.dlb, libdsp26x.dlb;
#else
$LIBRARIES = libc26xmt.dlb, libiomt.dlb, libdsp26x.dlb;
#endif
#else
#ifdef __ADI_LIBEH__
$LIBRARIES = libeh.dlb, libc26x.dlb, libio.dlb, libdsp26x.dlb;
#else
$LIBRARIES = libc26x.dlb, libio.dlb, libdsp26x.dlb;
#endif
#endif

// Libraries from the command line are included in COMMAND_LINE_OBJECTS.
#ifndef EZKIT_MONITOR
#ifdef __ADI_LIBEH__
#define CRT_HDR 262_hdr_adamagic.doj
#else
#define CRT_HDR 262_hdr.doj
#endif
#else
#define CRT_HDR 262_hdr_ezkit.doj
#endif
$OBJECTS = CRT_HDR, $COMMAND_LINE_OBJECTS;

MEMORY
{
#ifdef __EZKIT_LICENSE_RESTRICTION_SHARC__

  // Only 10K available for PM
  // Use the space unavailable to PM as DM
    seg_rth  { TYPE(PM RAM) START(0x00080000) END(0x000800ff) WIDTH(48) }
    seg_init { TYPE(PM RAM) START(0x00080100) END(0x000801ff) WIDTH(48) }
    seg_pmco { TYPE(PM RAM) START(0x00080200) END(0x000825ff) WIDTH(48) }
    seg_pmda { TYPE(PM RAM) START(0x00083900) END(0x00083DAA) WIDTH(32) }
    seg_dm32 { TYPE(DM RAM) START(0x00083DAB) END(0x00087FFF) WIDTH(32) }

#else

    seg_rth  { TYPE(PM RAM) START(0x00080000) END(0x000800ff) WIDTH(48) }
    seg_init { TYPE(PM RAM) START(0x00080100) END(0x000801ff) WIDTH(48) }
    seg_int_code { TYPE(PM RAM) START(0x00080200) END(0x00080287) WIDTH(48) }
    seg_pmco { TYPE(PM RAM) START(0x00080288) END(0x000841ff) WIDTH(48) }
    seg_pmda { TYPE(PM RAM) START(0x00086300) END(0x00087fff) WIDTH(32) }

#endif

    seg_dmda { TYPE(DM RAM) START(0x000c0000) END(0x000c3fff) WIDTH(32) }
    seg_heap { TYPE(DM RAM) START(0x000c4000) END(0x000c5fff) WIDTH(32) }
    seg_stak { TYPE(DM RAM) START(0x000c6000) END(0x000c7fff) WIDTH(32) }

    seg_ext8 { TYPE(DM RAM DMAONLY) START(0x01200000) END(0x013FFFFF) WIDTH(8) }
}


PROCESSOR p0
{
    KEEP( _main,___ctor_NULL_marker,___lib_end_of_heap_descriptions )
    LINK_AGAINST( $COMMAND_LINE_LINK_AGAINST)
    OUTPUT( $COMMAND_LINE_OUTPUT_FILE )

    SECTIONS
    {
        // .text output section
        seg_rth
        {
            INPUT_SECTIONS( $OBJECTS(seg_rth) $LIBRARIES(seg_rth))
        } >seg_rth

        seg_init
        {
            ldf_seginit_space = . ;
            INPUT_SECTIONS( $OBJECTS(seg_init) $LIBRARIES(seg_init))
        } >seg_init

#ifdef __EZKIT_LICENSE_RESTRICTION_SHARC__

        seg_int_code
        {
            INPUT_SECTIONS( $OBJECTS(seg_int_code) $LIBRARIES(seg_int_code))
        } >seg_pmco

#else
        seg_int_code
        {
            INPUT_SECTIONS( $OBJECTS(seg_int_code) $LIBRARIES(seg_int_code))
        } >seg_int_code
#endif

        seg_pmco
        {
            INPUT_SECTIONS( $OBJECTS(seg_pmco) $LIBRARIES(seg_pmco))
        } >seg_pmco

        seg_pmda
        {
            INPUT_SECTIONS( $OBJECTS(seg_pmda) $LIBRARIES(seg_pmda))
        } >seg_pmda


        seg_dmda
        {
            INPUT_SECTIONS( $OBJECTS(seg_dmda) $LIBRARIES(seg_dmda))
        } > seg_dmda

#ifdef __EZKIT_LICENSE_RESTRICTION_SHARC__
        //When using an EZkit license, only 10K PM words are allowed. The extra space left over in Block 0 which is defined
        //as PM for full licenses is declared as 32-bit DM data by default for the EZkit license. Make note of this difference
        //when switching from an EZkit license to a full license while using the default LDF files.

        seg_dm32
        {
            INPUT_SECTIONS( $OBJECTS(seg_dm32) $LIBRARIES(seg_dm32) )
        } >seg_dm32

#endif


        seg_ext8 //SHT_NOBITS //For debug purposes, after loading the external segment once, use the SHT_NOBITS
                            //command in the LDF to avoid the lengthy process of initializing external memory via the emulator
                            //as you debug. Be sure to rebuild without SHT_NOBITS after debug or when external data has changed.
        {
            INPUT_SECTIONS( $OBJECTS(seg_ext))

        #if FILE_DATA_WIDTH==32
         /*For loading 32 BIT WORDS into x8 ext. mem:*/
         PACKING(5  B0 B0 B0 B4 B5 \
                    B0 B0 B0 B3 B0 \
                    B0 B0 B0 B2 B0 \
                    B0 B0 B0 B1 B0)

        #endif

        #if FILE_DATA_WIDTH==16
         PACKING(5  B0 B1 B2 B4 B5 \
                    B0 B0 B0 B3 B0)
        #endif

        #if FILE_DATA_WIDTH==8
         PACKING(5  B1 B2 B3 B4 B5)

        #endif
        } > seg_ext8

#ifdef __ADI_LIBEH__
    .gdt
    {
      INPUT_SECTIONS( $OBJECTS(.gdt) $LIBRARIES(.gdt))
    } > seg_dmda

    .frt
    {
      INPUT_SECTIONS( $OBJECTS(.frt) $LIBRARIES(.frt))
    } > seg_dmda

    .cht
    {
      INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht))
    } > seg_dmda

    .edt
    {
      INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt))
    } > seg_dmda
#endif

        stackseg
        {

            // allocate a stack for the application
            ldf_stack_space = .;
            ldf_stack_length = MEMORY_SIZEOF(seg_stak);
        } > seg_stak

        heap
        {
            // allocate a heap for the application
            ldf_heap_space = .;
            ldf_heap_length = MEMORY_SIZEOF(seg_heap);
            ldf_heap_end = ldf_heap_space + ldf_heap_length - 1;
        } > seg_heap

    }
}

⌨️ 快捷键说明

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