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

📄 adsp-21160_asm.ldf

📁 2005 Center for Biological & Computational Learning at MIT and MIT All rights reserved. Permissio
💻 LDF
字号:

ARCHITECTURE(ADSP-21160)

//
// ADSP-21160 Memory Map:
//   ------------------------------------------------
//   Internal memory  0x0000 0000 to 0x000f ffff
//   ------------------------------------------------
//                    0x0000 0000 to 0x0000 0?ff  IOP Regs
//                    0x0000 0?00 to 0x0001 ffff  (reserved)
//           Block 0  0x0002 0000 to 0x0002 7fff  Long Word (64) Addresses
//           Block 1  0x0002 8000 to 0x0002 ffff  Long Word (64) Addresses
//                    0x0003 0000 to 0x0003 ffff  (reserved)
//           Block 0  0x0004 0000 to 0x0004 ffff  Normal Word (32/48) Addresses
//           Block 1  0x0005 0000 to 0x0005 ffff  Normal Word (32/48) Addresses
//                    0x0006 0000 to 0x0007 ffff  (reserved)
//           Block 0  0x0008 0000 to 0x0009 ffff  Short Word (16) Addresses
//           Block 1  0x000a 0000 to 0x000b ffff  Short Word (16) Addresses
//                    0x000c 0000 to 0x000f ffff  (reserved)
//   ------------------------------------------------
//   Multiproc memory 0x0010 0000 to 0x007f ffff
//   ------------------------------------------------
//                    0x0010 0000 to 0x001f ffff  ADSP-21160 ID=001 Internal memory
//                    0x0020 0000 to 0x002f ffff  ADSP-21160 ID=010 Internal memory
//                    0x0030 0000 to 0x003f ffff  ADSP-21160 ID=011 Internal memory
//                    0x0040 0000 to 0x004f ffff  ADSP-21160 ID=100 Internal memory
//                    0x0050 0000 to 0x005f ffff  ADSP-21160 ID=101 Internal memory
//                    0x0060 0000 to 0x006f ffff  ADSP-21160 ID=110 Internal memory
//                    0x0070 0000 to 0x007f ffff  ADSP-21160 ID=all Internal memory
//   ------------------------------------------------
//   External memory  0x0080 0000 to 0xffff ffff
//   ------------------------------------------------
//
// This architecture file allocates:
//         Internal 256 words of run-time header in memory block 0
//                  256 words of initialization code in memory block 0
//                  38K words of C code space in memory block 0
//                   6K 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

#ifndef __NO_STD_LIB
#ifdef __swfa
SEARCH_DIR( $ADI_DSP/211xx/lib/swfa )
#else
SEARCH_DIR( $ADI_DSP/211xx/lib )
#endif
#endif

// The I/O library provides support for printing hexadecimal constants
// using the "%a" conversion specifier, and for registering alternatives to
// the default device driver that is supported by the VisualDSP++ simulator
// and EZ-KIT Lite systems. Those applications that do not require this
// functionality may define the macro __LIBIO_LITE which will select an
// alternative I/O library and lead to reduced code occupancy.

#ifdef __LIBIO_LITE
# define LIBIO libio_lite.dlb
# define LIBIOMT libio_litemt.dlb
#else
# define LIBIO libio.dlb
# define LIBIOMT libiomt.dlb
#endif

#ifdef _ADI_THREADS
#ifdef __ADI_LIBEH__
$LIBRARIES = libehmt.dlb, libc160mt.dlb, LIBIOMT, libdsp160.dlb;
#else
$LIBRARIES = libc160mt.dlb, LIBIOMT, libdsp160.dlb;
#endif
#else
#ifdef __ADI_LIBEH__
$LIBRARIES = libeh.dlb, libc160.dlb, LIBIO, libdsp160.dlb;
#else
$LIBRARIES = libc160.dlb, LIBIO, libdsp160.dlb;
#endif
#endif

// Libraries from the command line are included in COMMAND_LINE_OBJECTS.
$OBJECTS = $COMMAND_LINE_OBJECTS;

MEMORY
{
    seg_rth  { TYPE(PM RAM) START(0x00040000) END(0x000400ff) WIDTH(48) }
    seg_init { TYPE(PM RAM) START(0x00040100) END(0x000401ff) WIDTH(48) }
    seg_int_code { TYPE(PM RAM) START(0x00040200) END(0x00040287) WIDTH(48) }
    seg_pmco { TYPE(PM RAM) START(0x00040288) END(0x00049aa9) WIDTH(48) }
    seg_pmda { TYPE(PM RAM) START(0x0004e800) END(0x0004ffff) WIDTH(32) }

    seg_dmda { TYPE(DM RAM) START(0x00050000) END(0x00057fff) WIDTH(32) }
    seg_heap { TYPE(DM RAM) START(0x00058000) END(0x0005dfff) WIDTH(32) }
    seg_stak { TYPE(DM RAM) START(0x0005e000) END(0x0005ffff) WIDTH(32) }
}



PROCESSOR p0
{
    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

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

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

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


        .bss ZERO_INIT
        {
           INPUT_SECTIONS( $OBJECTS(.bss) $LIBRARIES(.bss))
        } > seg_dmda

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


        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 + -