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

📄 56f832x_linker.cmd

📁 56f8300E系列dsp的BOOTloader
💻 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 + -