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

📄 adsp-21533.ldf

📁 嵌入式系统开发中
💻 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 + -