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

📄 adsp-2191.ldf

📁 ADI-219x dsp的回声消除代码
💻 LDF
字号:

ARCHITECTURE(ADSP-2191)

SEARCH_DIR( $ADI_DSP\219x\lib )

// Example interrupt vector table
$INTTAB    = 219x_int_tab.doj;

// libsim provides fast, mostly host emulated IO only supported by
// the simulator. The libio library provides IO processing mostly
// done by the 219X target that is supported by the emulator and
// simulator. Libio is the default used, but if __USING_LIBSIM is
// defined libsim will be used.
//   from the driver command line, use options,
//          "-flags-link -MD__USING_LIBSIM=1"
//   in the ide, add -MD__USING_LIBSIM=1 to the linker additional
//   options

#ifdef __USING_LIBSIM
$IOLIB     = libsim.dlb;
#else  // !__USING_LIBSIM
$IOLIB     = libio.dlb;
#endif //  __USING_LIBSIM


// When an object that was compiled as C++ is included on the
// link line the __cplusplus macro is defined to link with the
// C++ libraries and runtime mechanisms. The compiler driver
// (cc219x) should be used to link C++ compiled objects to
// ensure that any static initialisations and template C++
// matters are resolved.

#ifdef __cplusplus
$CLIBS     = libc.dlb, libdsp.dlb, libcpp.dlb, libcpprt.dlb;
$START     = 219x_cpp_hdr.doj;
#else  // !__cplusplus
$CLIBS     = libc.dlb, libdsp.dlb;
$START     = 219x_hdr.doj;
#endif //  __cplusplus


// Libraries from the command line are included in COMMAND_LINE_OBJECTS.

$OBJECTS   =	$COMMAND_LINE_OBJECTS;
$LIBRARIES = $IOLIB, $CLIBS;

// This memory map is set up to facilite testing of the tool
// chain -- code and data area are as large as possible. Code
// is placed in page 0, starting with space reserved for the
// interrupt table. All data is placed in page 1. Note that
// the run time header must initialize the data page registers
// to 1 to match this placement of program data. All pages are
// 64K words.

MEMORY
{
       // The memory section where the reset vector resides
   mem_INT_RSTI     { TYPE(PM RAM) START(0x000000) END(0x00001f) WIDTH(24) }

       // The memory sections where the interrupt vector code and an
       // interrupt table used by library functions resides. The
       // library functions concerned include signal(), interrupt(),
       // raise(), and clear_interrupts()
   mem_INT_PWRDWN   { TYPE(PM RAM) START(0x000020) END(0x00003f) WIDTH(24) }
   mem_INT_KERNEL   { TYPE(PM RAM) START(0x000040) END(0x00005f) WIDTH(24) }
   mem_INT_STKI     { TYPE(PM RAM) START(0x000060) END(0x00007f) WIDTH(24) }
   mem_INT_INT4     { TYPE(PM RAM) START(0x000080) END(0x00009f) WIDTH(24) }
   mem_INT_INT5     { TYPE(PM RAM) START(0x0000a0) END(0x0000bf) WIDTH(24) }
   mem_INT_INT6     { TYPE(PM RAM) START(0x0000c0) END(0x0000df) WIDTH(24) }
   mem_INT_INT7     { TYPE(PM RAM) START(0x0000e0) END(0x0000ff) WIDTH(24) }
   mem_INT_INT8     { TYPE(PM RAM) START(0x000100) END(0x00011f) WIDTH(24) }
   mem_INT_INT9     { TYPE(PM RAM) START(0x000120) END(0x00013f) WIDTH(24) }
   mem_INT_INT10    { TYPE(PM RAM) START(0x000140) END(0x00015f) WIDTH(24) }
   mem_INT_INT11    { TYPE(PM RAM) START(0x000160) END(0x00017f) WIDTH(24) }
   mem_INT_INT12    { TYPE(PM RAM) START(0x000180) END(0x00019f) WIDTH(24) }
   mem_INT_INT13    { TYPE(PM RAM) START(0x0001a0) END(0x0001bf) WIDTH(24) }
   mem_INT_INT14    { TYPE(PM RAM) START(0x0001c0) END(0x0001df) WIDTH(24) }
   mem_INT_INT15    { TYPE(PM RAM) START(0x0001e0) END(0x0001ff) WIDTH(24) }
   mem_itab         { TYPE(PM RAM) START(0x000200) END(0x000241) WIDTH(24) }

       // The default program memory used by the compiler.
   mem_code         { TYPE(PM RAM) START(0x000242) END(0x000fff) WIDTH(24) }
       // The default PM data memory used by the compiler.
   mem_data2        { TYPE(PM RAM) START(0x001000) END(0x001fff) WIDTH(24) }


       // The default DM data memory used by the compiler.
#ifdef __cplusplus
   mem_ctor         { TYPE(DM RAM) START(0x008000) END(0x0080FF) WIDTH(16) }
   mem_data1        { TYPE(DM RAM) START(0x008100) END(0x00f1ff) WIDTH(16) }
#else
   mem_data1        { TYPE(DM RAM) START(0x008000) END(0x00f1ff) WIDTH(16) }
#endif


       // The memory section used for dynamic allocation routines.
   mem_heap         { TYPE(DM RAM) START(0x00f200) END(0x00f9ff) WIDTH(16) }

       // The memory section used for the software stack pointed to by 
       // STACKPOINTER(I4) and FRAMEPOINTER(I5).
   mem_stack        { TYPE(DM RAM) START(0x00fa00) END(0x00ffff) WIDTH(16) }
}



PROCESSOR p0
{
    LINK_AGAINST( $COMMAND_LINE_LINK_AGAINST)
    OUTPUT( $COMMAND_LINE_OUTPUT_FILE )

    SECTIONS
    {

     sec_INT_RSTI {
        INPUT_SECTIONS ( $OBJECTS( IVreset ) $LIBRARIES( IVreset ) )
     } > mem_INT_RSTI

     sec_INT_PWRDWN {
        INPUT_SECTIONS ( $OBJECTS( IVpwrdwn ) $LIBRARIES( IVpwrdwn ) )
     } > mem_INT_PWRDWN

     sec_INT_STKI {
        INPUT_SECTIONS( $OBJECTS( IVstackint ) $LIBRARIES( IVstackint ) )
     } > mem_INT_STKI

     sec_INT_KERNEL {
        INPUT_SECTIONS( $OBJECTS( IVkernel ) $LIBRARIES( IVkernel ) )
     } > mem_INT_KERNEL

     sec_INT_INT4 { INPUT_SECTIONS( $OBJECTS( IVint4 ) $LIBRARIES( IVint4 ) ) 
     } > mem_INT_INT4
     sec_INT_INT5 { INPUT_SECTIONS( $OBJECTS( IVint5 ) $LIBRARIES( IVint5 ) ) 
     } > mem_INT_INT5
     sec_INT_INT6 { INPUT_SECTIONS( $OBJECTS( IVint6 ) $LIBRARIES( IVint6 ) ) 
     } > mem_INT_INT6
     sec_INT_INT7 { INPUT_SECTIONS( $OBJECTS( IVint7 ) $LIBRARIES( IVint7 ) ) 
     } > mem_INT_INT7
     sec_INT_INT8 { INPUT_SECTIONS( $OBJECTS( IVint8 ) $LIBRARIES( IVint8 ) ) 
     } > mem_INT_INT8
     sec_INT_INT9 { INPUT_SECTIONS( $OBJECTS( IVint9 ) $LIBRARIES( IVint9 ) ) 
     } > mem_INT_INT9
     sec_INT_INT10 { INPUT_SECTIONS( $OBJECTS( IVint10 ) $LIBRARIES( IVint10 ) )
     } > mem_INT_INT10
     sec_INT_INT11 { INPUT_SECTIONS( $OBJECTS( IVint11 ) $LIBRARIES( IVint11 ) )
     } > mem_INT_INT11
     sec_INT_INT12 { INPUT_SECTIONS( $OBJECTS( IVint12 ) $LIBRARIES( IVint12 ) )
     } > mem_INT_INT12
     sec_INT_INT13 { INPUT_SECTIONS( $OBJECTS( IVint13 ) $LIBRARIES( IVint13 ) )
     } > mem_INT_INT13
     sec_INT_INT14 { INPUT_SECTIONS( $OBJECTS( IVint14 ) $LIBRARIES( IVint14 ) )
     } > mem_INT_INT14
     sec_INT_INT15 { INPUT_SECTIONS( $OBJECTS( IVint15 ) $LIBRARIES( IVint15 ) )
     } > mem_INT_INT15

     sec_itab {
         INPUT_SECTIONS( $OBJECTS(lib_int_table) $LIBRARIES(lib_int_table))
     } > mem_itab

     sec_code {
         INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program) )
     } > mem_code

     sec_data1 {
         INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1) )
     } > mem_data1

     sec_data2 {
         INPUT_SECTIONS( $OBJECTS(data2) $LIBRARIES(data2) )
     } > mem_data2


        // provide linker variables describing the stack (grows down)
        //   ldf_stack_limit is the lowest address in the stack
        //   ldf_stack_base is the highest address in the stack
     sec_stack {
         ldf_stack_limit = .;
         ldf_stack_base = . + MEMORY_SIZEOF(mem_stack) - 1;
     } > mem_stack

     sec_heap {
         .heap = .;
         .heap_size = MEMORY_SIZEOF(mem_heap);
         .heap_end = . + MEMORY_SIZEOF(mem_heap) - 1;
     } > mem_heap

#ifdef __cplusplus
     sec_ctor {
         __ctors = .;    /* points to the start of the section */
         INPUT_SECTIONS( $OBJECTS(ctor) $LIBRARIES(ctor))
         INPUT_SECTIONS( $OBJECTS(ctor_end) $LIBRARIES(ctor_end))
     } > mem_ctor
#endif

    } // SECTIONS
} // PROCESSOR p0

// end of file

⌨️ 快捷键说明

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