📄 adsp-21533.ldf
字号:
/*** LDF for ADSP-BF533.** ** This LDF defines an example layout for a system which uses only** the available L1 SRAM. It does not assume the presence of any** external memory. See below for memory map descriptions.** ** There are a number of configuration options that can be specified** either by compiler flags, or by linker flags directly. The options are:** ** USE_PROFILER0** Enabled by -p. Link in profiling library, and write results to** both stdout and mon.out.** USE_PROFILER1** Enabled by -p1. Only write profiling data to mon.out.** USE_PROFILER2** Enabled by -p2. Only write profiling data to stdout.** USE_PROFILER** Equivalent to USE_PROFILER0.** USE_FILEIO** Always defined; enables the File I/O Support, which is necessary** for printf() to produce any output.** CRT** Link in C++ runtime.** USERMODE** Set up event handlers and go to usermode.** CSYNC_DEFINED** Link with libraries that have been built with -csync.** ** Memory map.** ** The known memory spaces are as follows:** ** Internal Memory:** 0xFFE0 0000 - 0xFFFF FFFF Core MMR registers (2MB)** 0xFFC0 0000 - 0xFFDF FFFF System MMR registers (2MB)** 0xFFB0 1000 - 0xFFBF FFFF Reserved** 0xFFB0 0000 - 0xFFB0 0FFF Scratch SRAM (4K)** 0xFFA1 4000 - 0xFFAF FFFF Reserved** 0xFFA0 0000 - 0xFFA1 3FFF Instruction SRAM (82K)** 0xFF90 8000 - 0xFF9F FFFF Reserved** 0xFF90 0000 - 0xFF90 7FFF Data Bank B SRAM (32K)** 0xFF80 8000 - 0xFF8F FFFF Reserved** 0xFF80 0000 - 0xFF80 7FFF Data Bank A SRAM (32K)** 0xEF00 0000 - 0xFF7F FFFF Reserved**** External Memory:** 0x2040 0000 - 0xEEFF FFFF Reserved** 0x2030 0000 - 0x203F FFFF Async Mem Bank 3 (1M)** 0x2020 0000 - 0x202F FFFF Async Mem Bank 2 (1M)** 0x2010 0000 - 0x201F FFFF Async Mem Bank 1 (1M)** 0x2000 0000 - 0x200F FFFF Async Mem Bank 0 (1M)** 0x0800 0000 - 0x1FFF FFFF Reserved** 0x0000 0000 - 0x07FF FFFF SDRAM (16M - 128M)*/ARCHITECTURE(ADSP-BF533)SEARCH_DIR( $ADI_DSP\Blackfin\lib )/* Moving to primIO means that we must always include the FileIO support,** so that printf() will work.*/#ifndef USE_FILEIO /* { */#define USE_FILEIO 1#endif /* } */#ifdef USE_PROFILER /* { */#define USE_PROFILER0#endif /* } */#ifdef USE_PROFILER0 /* { */#ifdef CSYNC_DEFINED /* { */#define PROFFLAG prfflg0_532y.doj#else#define PROFFLAG prfflg0_532.doj#endif /* } */// The profiler needs File I/O to write its results.#define USE_FILEIO 1#ifndef USE_PROFILER /* { */#define USE_PROFILER#endif /* } */#endif /* } */#ifdef USE_PROFILER1 /* { */#ifdef CSYNC_DEFINED /* { */#define PROFFLAG prfflg1_532y.doj#else#define PROFFLAG prfflg1_532.doj#endif /* } */#define USE_FILEIO 1#ifndef USE_PROFILER /* { */#define USE_PROFILER#endif /* } */#endif /* } */#ifdef USE_PROFILER2 /* { */#ifdef CSYNC_DEFINED /* { */#define PROFFLAG prfflg2_532y.doj#else#define PROFFLAG prfflg2_532.doj#endif /* } */#define USE_FILEIO 1#ifndef USE_PROFILER /* { */#define USE_PROFILER#endif /* } */#endif /* } */#ifdef CSYNC_DEFINED /* { */#define OMEGA idle532y.doj#else#define OMEGA idle532.doj#endif /* } */#ifdef MEMBSZ /* { */#define MEMINIT __initsbsz532.doj,#else#define MEMINIT#endif /* } */#ifdef USERMODE /* { */#define LIBSMALL#else#ifdef CSYNC_DEFINED /* { */#define LIBSMALL libsmall532y.dlb,#else#define LIBSMALL libsmall532.dlb,#endif /* } */#endif /* } */#ifdef M3_RESERVED /* { */#ifdef CSYNC_DEFINED /* { */#define LIBM3 libm3res532y.dlb#define LIBDSP libdspm3res532y.dlb#define SFTFLT libsftflt532y.dlb#else#define LIBM3 libm3res532.dlb#define LIBDSP libdspm3res532.dlb#define SFTFLT libsftflt532.dlb#endif /* } */#else#ifdef CSYNC_DEFINED /* { */#define LIBM3 libm3free532y.dlb#define LIBDSP libdsp532y.dlb#define SFTFLT libsftflt532y.dlb#else#define LIBM3 libm3free532.dlb#define LIBDSP libdsp532.dlb#define SFTFLT libsftflt532.dlb#endif /* } */#endif /* } */#ifdef IEEEFP /* { */#define FPLIBS SFTFLT, LIBDSP#else#define FPLIBS LIBDSP, SFTFLT#endif /* } */#ifdef CSYNC_DEFINED /* { */#define LIBS LIBSMALL MEMINIT libc532y.dlb, LIBM3, libevent532y.dlb, libio532y.dlb, libcpp532y.dlb, libcpprt532y.dlb, FPLIBS, libetsi532.dlb, OMEGA#else#define LIBS LIBSMALL MEMINIT libc532.dlb, LIBM3, libevent532.dlb, libio532.dlb, libcpp532.dlb, libcpprt532.dlb, FPLIBS, libetsi532.dlb, OMEGA#endif /* } */#if defined(USE_FILEIO) || defined(USE_PROFGUIDE)#ifdef CSYNC_DEFINED /* { */$LIBRARIES = LIBS, librt_fileio532y.dlb;#else$LIBRARIES = LIBS, librt_fileio532.dlb;#endif /* } */#else#ifdef CSYNC_DEFINED /* { */$LIBRARIES = LIBS, librt532y.dlb;#else$LIBRARIES = LIBS, librt532.dlb;#endif /* } */#endif /* } */// Libraries from the command line are included in COMMAND_LINE_OBJECTS.#ifdef USE_PROFILER /* { */#ifdef USERMODE /* { */#ifdef USE_FILEIO /* { */#ifdef CSYNC_DEFINED /* { */#define CRT crtfpc532y.doj, libprofile532y.dlb, PROFFLAG#else#define CRT crtfpc532.doj, libprofile532.dlb, PROFFLAG#endif /* } */#else#ifdef CSYNC_DEFINED /* { */#define CRT crtcp532y.doj, libprofile532y.dlb, PROFFLAG#else#define CRT crtcp532.doj, libprofile532y.dlb, PROFFLAG#endif /* } */#endif /* USE_FILEIO */ /* } */#else /* USERMODE */#ifdef USE_FILEIO /* { */#ifdef CSYNC_DEFINED /* { */#define CRT crtsfpc532y.doj, libprofile532y.dlb, PROFFLAG#else#define CRT crtsfpc532.doj, libprofile532.dlb, PROFFLAG#endif /* } */#else#ifdef CSYNC_DEFINED /* { */#define CRT crtscp532y.doj, libprofile532y.dlb, PROFFLAG#else#define CRT crtscp532.doj, libprofile532.dlb, PROFFLAG#endif /* } */#endif /* USE_FILEIO */ /* } */#endif /* USERMODE */ /* } */#else#ifdef USERMODE /* { */#ifdef USE_FILEIO /* { */#ifdef CSYNC_DEFINED /* { */#define CRT crtcf532y.doj#else#define CRT crtcf532.doj#endif /* } */#else#ifdef CSYNC_DEFINED /* { */#define CRT crtc532y.doj#else#define CRT crtc532.doj#endif /* } */#endif /* USE_FILEIO */ /* } */#else#ifdef USE_FILEIO /* { */#ifdef CSYNC_DEFINED /* { */#define CRT crtsfc532y.doj#else#define CRT crtsfc532.doj#endif /* } */#else#ifdef CSYNC_DEFINED /* { */#define CRT crtsc532y.doj#else#define CRT crtsc532.doj#endif /* } */#endif /* USE_FILEIO */ /* } */#endif /* USERMODE */ /* } */#endif /* USE_PROFILER */ /* } */#ifdef CSYNC_DEFINED /* { */#define ENDCRT , crtn532y.doj#else#define ENDCRT , crtn532.doj#endif /* } */$OBJECTS = CRT, $COMMAND_LINE_OBJECTS ENDCRT;MEMORY{#ifdef __EZKIT_LICENSE_RESTRICTION_Blackfin__ /* { *//* Instruction SRAM, 20K */MEM_PROGRAM_RAM { TYPE(RAM) START(0xFFA00000) END(0xFFA04FFF) WIDTH(8) }#else/* Instruction SRAM, 82K */MEM_PROGRAM_RAM { TYPE(RAM) START(0xFFA00000) END(0xFFA13FFF) WIDTH(8) }#endif /* } *//* Data - normal data, 12K */#ifdef USERMODE /* { *//* Sysstack - 3K, supervisor mode */MEM_SYSSTACK { TYPE(RAM) START(0xFF901000) END(0xFF902FFF) WIDTH(8) }/* Stack - 5K supervisor mode */MEM_STACK { TYPE(RAM) START(0xFF903000) END(0xFF903FFF) WIDTH(8) }#else /* USERMODE *//* Stack - 3K, supervisor mode */MEM_STACK { TYPE(RAM) START(0xFF904000) END(0xFF905FFF) WIDTH(8) }/* Sysstack - 5K supervisor mode */MEM_SYSSTACK { TYPE(RAM) START(0xFF902000) END(0xFF903FFF) WIDTH(8) }#endif /* USERMODE */ /* } */MEM_L1_DATA_A { TYPE(RAM) START(0xFF800000) END(0xFF801FFF) WIDTH(8) }MEM_L1_DATA_B { TYPE(RAM) START(0xff802000) END(0xff804fff) WIDTH(8) }MEM_L1_DATA_C { TYPE(RAM) START(0xff900000) END(0xff901fff) WIDTH(8) }MEM_ARGV { TYPE(RAM) START(0xFF807E00) END(0xFF807FFF) WIDTH(8) }MEM_HEAP { TYPE(RAM) START(0xFF805000) END(0xFF807DFF) WIDTH(8) }MEM_L1_SCRATCH { TYPE(RAM) START(0xFFB00000) END(0xFFB00FFF) WIDTH(8) }}PROCESSOR P0{ OUTPUT( $COMMAND_LINE_OUTPUT_FILE ) /* Following address must match start of MEM_PROGRAM */ RESOLVE(start,0xffa00000) KEEP(start,_main) SECTIONS { program_ram { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program)) INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb)) INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code)) INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code)) } >MEM_PROGRAM_RAM#ifdef MEMBSZ bsz { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz)) } >MEM_DATA bsz_init { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS( $OBJECTS(bsz_init) $LIBRARIES(bsz_init)) } >MEM_DATA2#endif L1_data_a { INPUT_SECTION_ALIGN(1) INPUT_SECTIONS( $OBJECTS(mydata1) $LIBRARIES(mydata1)) } >MEM_L1_DATA_A L1_data_b { INPUT_SECTION_ALIGN(1) INPUT_SECTIONS( $OBJECTS(mydata2) $LIBRARIES(mydata2)) } >MEM_L1_DATA_B L1_data_c { INPUT_SECTION_ALIGN(1) INPUT_SECTIONS( $OBJECTS(mydata3) $LIBRARIES(mydata3) $LIBRARIES(constdata) $LIBRARIES(cplb_data) $LIBRARIES(pci_io) $LIBRARIES(data1) $OBJECTS(data1) $LIBRARIES(voldata) libio532.dlb(voldata) $LIBRARIES(ctor) $OBJECTS(ctor) $OBJECTS(constdata)) } >MEM_L1_DATA_C stack { ldf_stack_space = .; ldf_stack_end = ldf_stack_space + MEMORY_SIZEOF(MEM_STACK); } >MEM_STACK sysstack { ldf_sysstack_space = .; ldf_sysstack_end = ldf_sysstack_space + MEMORY_SIZEOF(MEM_SYSSTACK); } >MEM_SYSSTACK heap { // Allocate a heap for the application ldf_heap_space = .; ldf_heap_end = ldf_heap_space + MEMORY_SIZEOF(MEM_HEAP) - 1; ldf_heap_length = ldf_heap_end - ldf_heap_space; } >MEM_HEAP argv { // Allocate argv space for the application ldf_argv_space = .; ldf_argv_end = ldf_argv_space + MEMORY_SIZEOF(MEM_ARGV) - 1; ldf_argv_length = ldf_argv_end - ldf_argv_space; } >MEM_ARGV }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -