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
  • Hi again Ethan

    The .axf file generated by AC6 is in industry-standard ELF format (possibly containing DWARF debug information).

    If a plain .bin is being loaded correctly, but the .axf is not, that would point to the ELF format not being handled correctly by the debug adapter (or by the software interface between debugger and debug adapter), which seems unlikely.

    Your scatter-file looks OK to me - a single load region containing a few load regions.

    As an experiment, maybe you can try a loading a small "Hello World" program with a simple scatter-file.  Does this smaller/simpler ELF image load correctly?

    Stephen

  • Hi Stephen, 

    Did the following

    Downloaded the Ozone debugger, now AXF is loaded correctly so something is wrong when working with eclipse gdb and the gdb server,  

    Thanks for you support!

    Ethan