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

📄 adsp-bf535_asm.ldf

📁 ADI BF DSP的CF卡的读写源码
💻 LDF
字号:
/*
** LDF for ADSP-21535.
** 
** This LDF defines an example layout for a system which contains 256K
** of L2 SRAM, with the available L1 SRAM left unused. 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:
** 
** 
** Memory map.
** 
** The known memory spaces are as follows:
** 
** 0xFFE00000 - 0xFFFFFFFF		Core MMR registers (2MB)
** 0xFFC00000 - 0xFFDFFFFF		System MMR registers (2MB)
** 0xFFB04000 - 0xFFBFFFFF		Reserved
** 0xFFB00000 - 0xFFB00FFF		Scratch SRAM (4K)
** 0xFFA04000 - 0xFFAFFFFF		Reserved
** 0xFFA00000 - 0xFFA03FFF		Code SRAM (16K)
** 0xFF904000 - 0xFF9FFFFF		Reserved
** 0xFF900000 - 0xFF903FFF		Data Bank B SRAM (16K)
** 0xFF804000 - 0xFF8FFFFF		Reserved
** 0xFF800000 - 0xFF803FFF		Data Bank A SRAM (16K)
** 0xF0040000 - 0xFF7FFFFF		Reserved RAM
** 0xF0000000 - 0xF003FFFF		L2 SRAM (256K)
** 0xEF000400 - 0xEFFFFFFF		Reserved ROM
** 0xEF000000 - 0xEF0003FF		Boot ROM (1K)
** 0x00000000 - 0xEEFFFFFF		unpopulated
** 
** The memory sections defined below assume that only L1 and L2 SRAM
** are available. We use L2, and leave L1 for explicit programmer use.
** The file VisualDSP/Blackfin/lib/src/libc/basiccrt.s contains example
** startup code which could be used to initialise the L1 SRAM as cache
** for L2.
** 
*/

ARCHITECTURE(ADSP-21535)

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
#endif	/* } */

#define LIBSMALL libsmall535.dlb,

#ifdef M3_RESERVED	/* { */
#define LIBM3 libm3res535.dlb
#define LIBDSP libdspm3res535.dlb
#else
#define LIBM3 libm3free535.dlb
#define LIBDSP libdsp535.dlb
#endif	/* } */

#define LIBS LIBSMALL libc535.dlb, LIBM3, libevent535.dlb, libio535.dlb, libsftflt535.dlb, LIBDSP
#if defined(USE_FILEIO) || defined(USE_PROFGUIDE)
$LIBRARIES = LIBS, librt_fileio535.dlb;
#else
$LIBRARIES = LIBS, librt535.dlb;
#endif	/* } */

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


$OBJECTS = $COMMAND_LINE_OBJECTS;

MEMORY
{
#ifdef __EZKIT_LICENSE_RESTRICTION_Blackfin__	/* { */
MEM_PROGRAM     { TYPE(RAM) START(0xF0000000) END(0xF0017FFF) WIDTH(8) }
MEM_HEAP        { TYPE(RAM) START(0xF0018000) END(0xF001BFFF) WIDTH(8) }
MEM_STACK       { TYPE(RAM) START(0xF001C000) END(0xF001DFFF) WIDTH(8) }
MEM_SYSSTACK    { TYPE(RAM) START(0xF001E000) END(0xF001FDFF) WIDTH(8) }
MEM_ARGV        { TYPE(RAM) START(0xF001FE00) END(0xF001FEFF) WIDTH(8) }
#else
MEM_START		{ TYPE(RAM) START(0xF0000000) END(0xF00003FF) WIDTH(8) }
MEM_PROGRAM     { TYPE(RAM) START(0xF0000400) END(0xF002FFCF) WIDTH(8) }
MEM_PCI_IO      { TYPE(RAM) START(0xF002FFD0) END(0xF002FFFF) WIDTH(8) }
MEM_HEAP        { TYPE(RAM) START(0xF0030000) END(0xF0037FFF) WIDTH(8) }
MEM_STACK       { TYPE(RAM) START(0xF0038000) END(0xF003DFFF) WIDTH(8) }
MEM_SYSSTACK    { TYPE(RAM) START(0xF003E000) END(0xF003FDFF) WIDTH(8) }
MEM_ARGV        { TYPE(RAM) START(0xF003FE00) END(0xF003FEFF) WIDTH(8) }
#endif	/* } */
MEM_L1_DATA_A   { TYPE(RAM) START(0xFF800000) END(0xFF803FFF) WIDTH(8) }
MEM_L1_DATA_B   { TYPE(RAM) START(0xFF900000) END(0xFF903FFF) WIDTH(8) }
MEM_L1_CODE     { TYPE(RAM) START(0xFFA00000) END(0xFFA03FFF) WIDTH(8) }
MEM_L1_SCRATCH  { TYPE(RAM) START(0xFFB00000) END(0xFFB00FFF) WIDTH(8) }
}


PROCESSOR p0
{
    OUTPUT( $COMMAND_LINE_OUTPUT_FILE )

    SECTIONS
    {
        program
        {
            // Align all code sections on 2 byte boundary
            INPUT_SECTION_ALIGN(4)
            INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))
            INPUT_SECTIONS( $OBJECTS(data1) $LIBRARIES(data1))
            INPUT_SECTIONS( $OBJECTS(constdata) $LIBRARIES(constdata)) 
#ifdef __EZKIT_LICENSE_RESTRICTION_Blackfin__	/* { */
	    INPUT_SECTIONS( $LIBRARIES(pci_io))
#endif	/* } */

            INPUT_SECTION_ALIGN(2)
            INPUT_SECTIONS( $OBJECTS(Program_CDMP3) ) //Program Segment of MP3 Decoder library
            INPUT_SECTION_ALIGN(1)
           INPUT_SECTIONS( $OBJECTS(Data_CDMP3) )//Data Segment of MP3 Decoder library



        } >MEM_PROGRAM

        mem_start
        {
            // Align all code sections on 2 byte boundary
            INPUT_SECTION_ALIGN(2)
            INPUT_SECTIONS( $OBJECTS(mem_start) $LIBRARIES(mem_start))
	} >MEM_START
        
        L1_code
        {
            // Align all code sections on 2 byte boundary
            INPUT_SECTION_ALIGN(2)
            INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code))
	} >MEM_L1_CODE

        L1_data_a
        {
            INPUT_SECTION_ALIGN(1)
            INPUT_SECTIONS( $OBJECTS(L1_data_a) $LIBRARIES(L1_data_a))
	} >MEM_L1_DATA_A

        L1_data_b
        {
            INPUT_SECTION_ALIGN(1)
            INPUT_SECTIONS( $OBJECTS(L1_data_b) $LIBRARIES(L1_data_b))
	} >MEM_L1_DATA_B

#ifndef __EZKIT_LICENSE_RESTRICTION_Blackfin__	/* { */
	pci_io
	{
	    INPUT_SECTION_ALIGN(4)
	    INPUT_SECTIONS( $LIBRARIES(pci_io))
	} >MEM_PCI_IO
#endif	/* } */

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