This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Loading AXF image to a target

Hello,


Working with the Arm Development Studio I build an image to ARM CORTEX-M55.

I have a simple scatter file with RO ZI RW,
When uploading the AXF to the target the RW variables that should be initialized (global variables) are NOT initialized with the proper values.

When looking at the load address on the target (cortex M-55) for a global variable i do NOT see the correct value on the target, so when running target I also do not see the correct value in the execution address of the variable.

I can see that scatter copy is done but not with the correct value.

I can see in the .AXF file that the initial value exits.

Thanks 

Ethan

Parents
  • Hi Stephen, 

    Thank you for your reply, 

    • I can see the initial values in the .AXF file
    • Loading the image to RAM
    • Debug adaptor is Segger Jlink
    • Using Arm compiler 6 

    When loading the file as a .bin (doing fromelf) I can see that values are correct in the target for load address and execution.

    This is the scatter file i am using 

    #include "region_defs.h"
    
    LR_CODE S_CODE_START {
        ER_CODE S_CODE_START {
            *.o (RESET +First)
            *(+RO)
        }
        
     	ER_CODE_CMSE_VENEER +0 ALIGN 32 {
            *(Veneer$$CMSE)
        }
    
        ER_CODE_CMSE_VENEER_DUMMY +0 ALIGN 32 EMPTY 0 {}
    
    
      CODE_WATERMARK +0 EMPTY 0x0 {
        }
    
       ScatterAssert(ImageLimit(CODE_WATERMARK) <= S_CODE_START + S_CODE_SIZE)
    
        ER_DATA_S_RW  S_DATA_START {
            *(+RW)
        }
        
        ER_DATA_ZI imageLimit(ER_DATA_S_RW) {
            *(+ZI)
        }
    
        #if HEAP_SIZE > 0
        ARM_LIB_HEAP +0 ALIGN 8 EMPTY  HEAP_SIZE  {   ; Reserve empty region for heap
        }
        #endif
    
        ARM_LIB_STACK +0 ALIGN 32 EMPTY STACK_SIZE {   ; Reserve empty region for stack
        }
    
    
        SRAM_WATERMARK +0 EMPTY 0x0 {
        }
    
        ScatterAssert(ImageLimit(SRAM_WATERMARK) <= S_DATA_START + S_DATA_SIZE)
    }
    
     

Reply
  • Hi Stephen, 

    Thank you for your reply, 

    • I can see the initial values in the .AXF file
    • Loading the image to RAM
    • Debug adaptor is Segger Jlink
    • Using Arm compiler 6 

    When loading the file as a .bin (doing fromelf) I can see that values are correct in the target for load address and execution.

    This is the scatter file i am using 

    #include "region_defs.h"
    
    LR_CODE S_CODE_START {
        ER_CODE S_CODE_START {
            *.o (RESET +First)
            *(+RO)
        }
        
     	ER_CODE_CMSE_VENEER +0 ALIGN 32 {
            *(Veneer$$CMSE)
        }
    
        ER_CODE_CMSE_VENEER_DUMMY +0 ALIGN 32 EMPTY 0 {}
    
    
      CODE_WATERMARK +0 EMPTY 0x0 {
        }
    
       ScatterAssert(ImageLimit(CODE_WATERMARK) <= S_CODE_START + S_CODE_SIZE)
    
        ER_DATA_S_RW  S_DATA_START {
            *(+RW)
        }
        
        ER_DATA_ZI imageLimit(ER_DATA_S_RW) {
            *(+ZI)
        }
    
        #if HEAP_SIZE > 0
        ARM_LIB_HEAP +0 ALIGN 8 EMPTY  HEAP_SIZE  {   ; Reserve empty region for heap
        }
        #endif
    
        ARM_LIB_STACK +0 ALIGN 32 EMPTY STACK_SIZE {   ; Reserve empty region for stack
        }
    
    
        SRAM_WATERMARK +0 EMPTY 0x0 {
        }
    
        ScatterAssert(ImageLimit(SRAM_WATERMARK) <= S_DATA_START + S_DATA_SIZE)
    }
    
     

Children