📄 adsp-ts101-mp_asm.ldf
字号:
// PLease note that this is a modified version from the original LDF provided with the tools.
/*---------------------------------------------------------------------------------
Introduction to TigerSHARC Multiprocessing Systems Using VisualDSP++
Maikel K.B., DSP-Europe
June 2002
ADSP-TS101_ASM.LDF
This is an example of an LDF file for MP Systems in TigerSHARC. Relevant MP commands are:
MPMEMORY{} - specifies the offset of each processor抯 physical memory in your target multiprocessor system.
SHARED_MEMORY{} - describes the shared memory of a multiprocessor system. It outputs the Shared Memory files (.SM)
PROCESSOR{} - declares the processors present in the system as well as the processors that share the memory
LINK_AGAINST() - command directs the linker to check specified executables (.DXEs and .SMs) to resolve variables
and labels that have not been resolved locally.
OUTPUT() - selects the output file name for the processors and shared memory executable files
------------------------------------------------------------------------------------------------------*/
ARCHITECTURE(ADSP-TS101)
SEARCH_DIR( $ADI_DSP\TS\lib )
// Libraries from the command line are included in COMMAND_LINE_OBJECTS.
$OBJECTS = $COMMAND_LINE_OBJECTS;
// Internal memory blocks are 0x10000 (64k)
MEMORY
{
M0Code { TYPE(RAM) START(0x00000000) END(0x0000FFFF) WIDTH(32) }
M1Data { TYPE(RAM) START(0x00080000) END(0x0008FFFF) WIDTH(32) }
M2Data { TYPE(RAM) START(0x00100000) END(0x0010FFFF) WIDTH(32) }
SDRAM { TYPE(RAM) START(0x04000000) END(0x07FFFFFF) WIDTH(32) }
MS0 { TYPE(RAM) START(0x08000000) END(0x0BFFFFFF) WIDTH(32) }
MS1 { TYPE(RAM) START(0x0C000000) END(0x0FFFFFFF) WIDTH(32) }
// HOST { TYPE(RAM) START(0x10000000) END(0xFFFFFFFF) WIDTH(32) }
}
//Declare Multiprocessor Memory Space (MMS) offset values for processors ID0 and ID1
MPMEMORY
{
ID0 { START(0x2000000) } // MMS offset value for DSP with ID0
ID1 { START(0x2400000) } // MMS offset value for DSP with ID1
}
//Declare external shared memory
/*SHARED_MEMORY
{
OUTPUT(shared.sm) // .SM file is used by the linker to resolve (LINK_AGAINST)
// the absolute addresses of shared memory symbols
SECTIONS
{
ext_mem
{
INPUT_SECTIONS( data.doj(ext_data) )
} >SDRAM
}
}
*/
// Processor ID0 sections definition
PROCESSOR ID0
{
LINK_AGAINST(/*shared.sm,*/ ID1.dxe) // Resolves symbols within Multiprocessor Memory
// In this case, ID1 and Shared Memory
OUTPUT(ID0.dxe) // Executable generated for ID0
SECTIONS
{
code
{
FILL(0xb3c00000)
INPUT_SECTION_ALIGN(4)
INPUT_SECTIONS( ID0.doj(program))
} >M0Code // Code placed in Memory Bank 0
data1
{
INPUT_SECTIONS( ID0.doj(data1))
} >M1Data // Data1 placed in Memory Bank 1
data2
{
INPUT_SECTIONS( ID0.doj(data2))
} >M2Data // Data2 placed in Memory Bank 1
}
}
// Processor ID1 sections definition
PROCESSOR ID1
{
LINK_AGAINST(/*shared.sm,*/ ID0.dxe) // Resolves symbols within Multiprocessor Memory.
// In this case, DSP_1 and Shared Memory.
OUTPUT(ID1.dxe) // Executable generated for ID1
SECTIONS
{
code
{
FILL(0xb3c00000)
INPUT_SECTION_ALIGN(4)
INPUT_SECTIONS( ID1.doj(program))
} >M0Code // Code placed in Memory Bank 0
data1
{
INPUT_SECTIONS( ID1.doj(data1))
} >M1Data // Data1 placed in Memory Bank 1
data2
{
INPUT_SECTIONS( ID1.doj(data2))
} >M2Data // Data2 placed in Memory Bank 2
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -