AnsweredAssumed Answered

56F807, CW8.3, LCF starts xRAM @ 0x0030 \ 0x0040, Why?

Question asked by j... on Sep 13, 2018
Latest reply on Sep 24, 2018 by xiangjun.rong

I created two 56F807 projects using CW 8.3 stationary, one with Project Expert, one without.

 

The project made with PE, starts xRAM at 0x0040.

The project made without PE, start xRAM at 0x0030.

Why is the RAM not started at 0x0000?

 

Also, what are the compiler regs shown in the non-PE memory definitions?

 

Processor Expert LCF

MEMORY {
        # I/O registers area for on-chip peripherals
        .x_Peripherals (RW)   : ORIGIN = 0x1000, LENGTH = 0
        .x_CoreRegs    (RW)   : ORIGIN = 0xFF80, LENGTH = 0

 

        # List of all sections specified in the "Build options" tab
        #Internal vector boot area.
        .p_Interruptsboot  (RWX) : ORIGIN = 0x0000F800, LENGTH = 0x0004
        .p_Interrupts  (RWX) : ORIGIN = 0x00000000, LENGTH = 0x00000080
        .p_Code  (RWX) : ORIGIN = 0x00000080, LENGTH = 0x0000EF80
        .x_Data  (RW) : ORIGIN = 0x00000040, LENGTH = 0x00000FC0  #<<<---- Starts at 0x40
        .x_CWRegisters  (RW) : ORIGIN = 0x00000030, LENGTH = 0x00000010

 

        #Other memory segments
        .x_internal_ROM  (RW)  : ORIGIN = 0x00002000, LENGTH = 0x2000
        .p_internal_RAM  (RWX) : ORIGIN = 0x0000F000, LENGTH = 0x0800
}

 

Non-PE LCF

MEMORY
{
    .p_boot_flash_1       (RX)  : ORIGIN = 0x0000, LENGTH = 0x0004
    .p_interrupts_ROM     (RX)  : ORIGIN = 0x0004, LENGTH = 0x007C
#   .p_flash_ROM_A        (RX)  : ORIGIN = 0x0080, LENGTH = 0x7F80
#   .p_flash_ROM_B        (RX)  : ORIGIN = 0x8000, LENGTH = 0x7000
    .p_flash_ROM          (RX)  : ORIGIN = 0x0080, LENGTH = 0xEF80
    .p_internal_RAM       (RWX) : ORIGIN = 0xF000, LENGTH = 0x0800
    .p_boot_flash_2       (RX)  : ORIGIN = 0xF800, LENGTH = 0x0000
    .x_compiler_regs_iRAM (RW)  : ORIGIN = 0x0030, LENGTH = 0x0010  <<<---- Starts at 0x30  
    .x_internal_RAM       (RW)  : ORIGIN = 0x0040, LENGTH = 0x0FC0
    .x_peripherals        (RW)  : ORIGIN = 0x1000, LENGTH = 0x0800
#   .x_reserved                 : ORIGIN = 0x1800, LENGTH = 0x0800
    .x_flash_ROM          (R)   : ORIGIN = 0x2000, LENGTH = 0x2000
    .x_external_RAM       (RW)  : ORIGIN = 0x4000, LENGTH = 0xBF80
    .x_core_regs          (RW)  : ORIGIN = 0xFF80, LENGTH = 0x0000
}

Outcomes