📄 56f832x_linker.cmd
字号:
# Linker.cmd file for DSP56836EVM Flash
#*******************************************************************************
MEMORY {
.pInterruptVector (RX) : ORIGIN = 0x0000, LENGTH = 0x00AA
.pFlash (RX) : ORIGIN = 0x00AA, LENGTH = 0x3F46
.pBootFlash (RX) : ORIGIN = 0x20000, LENGTH = 0x1000
.pReserved (RX) : ORIGIN = 0x21000, LENGTH = 0xe800
.pIntRAM (RWX) : ORIGIN = 0x2F800, LENGTH = 0x0800
.pIntRAM_Mirror (RWX) : ORIGIN = 0x2F800, LENGTH = 0x0800
.pExtRAM (RWX) : ORIGIN = 0x30000, LENGTH = 0x1D0000 #??? check docs
.xIntRAM (RW) : ORIGIN = 0x0002, LENGTH = 0x0FFE
.xIntRAM_Mirror (RWX) : ORIGIN = 0x0002, LENGTH = 0x0FFE
.xFlash (R) : ORIGIN = 0x1000, LENGTH = 0x0FF8
.xBootCfg (R) : ORIGIN = 0x1FFD, LENGTH = 0x0003
.xExtRAM (RW) : ORIGIN = 0x2000, LENGTH = 0x7FFF # SMM pRAM limit is 0x7FFF
.xExtRAM_Circular (RW) : ORIGIN = 0x7000, LENGTH = 0x800
.xPeripherals (RW) : ORIGIN = 0xF000, LENGTH = 0x0FC0
.xCoreRegisters (RW) : ORIGIN = 0xFFC0, LENGTH = 0x0100 # check here
}
#*******************************************************************************
FORCE_ACTIVE {FconfigInterruptVector}
FORCE_ACTIVE {FarrayData}
FORCE_ACTIVE {FarrayData1}
FORCE_ACTIVE {FCfg_StartDelay}
SECTIONS {
.BootCode :
{
# force "jmp #0" command code at boot address
WRITEH 0xE154; # 1110 0001 0101 a1aa
WRITEH 0x0000; # aaaa aaaa aaaa aaaa
} > .pBootFlash
#*******************************************************************************
.ApplicationInterruptVector :
{
* (isr_vectors.text)
} > .pInterruptVector
#*******************************************************************************
.ApplicationCode :
{
# Place all code into Program Flash
* (.text)
* (rtlib.text)
* (fp_engine.text)
* (user.text)
F_begin_addr_in_pFlashConst = .;
* (appconst.text)
F_Pcode_end_addr_in_ROM = .;
__Pcode_end_addr_in_ROM = .;
} > .pFlash
#*******************************************************************************
#*******************************************************************************
.ApplicationInitialzedData : AT( __Pcode_end_addr_in_ROM )
{
# Define variables for C initialization code
F_Xdata_begin_addr_in_ROM = __Pcode_end_addr_in_ROM;
F_Xdata_begin_addr_in_RAM = .;
__Xdata_begin_addr_in_RAM = .;
# Place rest of the data into Internal Data RAM
* (.data)
* (fp_state.data)
* (rtlib.data)
F_Xdata_ROMtoRAM_length = . - __Xdata_begin_addr_in_RAM;
} > .xIntRAM_Mirror
#*******************************************************************************
.ApplicationCircularBuffer :
{
* (circular_buffer.text)
} > .xExtRAM_Circular
#*******************************************************************************
.ApplicationConst :
{
F_begin_addr_in_ExtRAM = .;
} > .xExtRAM
#*******************************************************************************
.DataForDataRAM :
{
# allocates space for .ApplicationInitializedData section
. = (ADDR(.xIntRAM_Mirror) + SIZEOF(.xIntRAM_Mirror) / 2);
# Define variables for C initialization code
F_Xbss_begin_addr = .;
__Xbss_begin_addr = .;
# .bss sections
* (rtlib.bss.lo)
* (rtlib.bss)
* (.bss)
F_Xbss_length = . - __Xbss_begin_addr;
. = ALIGN(4);
__Xbss_end_addr = .;
} > .xIntRAM
_STACK_ADDR = __Xbss_end_addr;
_STACK_SIZE = 0x0100;
_STACK_END = _STACK_ADDR + _STACK_SIZE;
F_StackAddr = _STACK_ADDR;
F_StackEndAddr = _STACK_END;
_HEAP_ADDR = _STACK_END;
_HEAP_SIZE = 0x1000;
_HEAP_END = _HEAP_ADDR + _HEAP_SIZE;
# export heap and stack runtime to libraries
F_heap_addr = _HEAP_ADDR;
F_heap_end = _HEAP_END;
#*******************************************************************************
.InitializedConstData :
{
F_begin_addr_in_xFlashConst = .;
* (.const)
* (.const.data)
* (appconst1.text)
} > .xFlash
#*******************************************************************************
.ApplicationConfiguration :
{
* (appconst.data)
} > .xBootCfg
FArchIO = 0; # ADDR(.xPeripherals);
FArchCore = 0; # ADDR(.xCoreRegisters);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -