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

fromelf converts axf to bin directory instead of bin file

Hello,

I have same problem using Keil uVision 5.24.2.0 as www.keil.com/.../

Simply fromelf tool produce folder instead of file.
This is structure of generated output:

[UMC2_A-Test-Debug.bin]         - sub folder in project folder
 +-- ER_IROM0                   - file
 +-- ER$$.ARM.__AT_0x10006000   - next file

My "user command" is here:

$K\ARM\ARMCC\bin\fromelf.exe --bin --output=@L.bin !L

"Build Output" after calling:

After Build - User command #1: D:\Keil_v5\\ARM\ARMCC\bin\fromelf.exe --bin --output=UMC2_A-Test-Debug.bin .\DEBUG\Objects\UMC2_A-Test-Debug.axf

And finally, my scatter file:

; Some comment
LR_IMEM0 0x00000000 0x00040000   {    ; load region size_region
 ER_IROM0 0x00000000 0x00040000         { ; load address = execution address
   *.o ( RESET , +FIRST)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
; Some comment
RW_IRAM0 0x02000000 0x00002000  {
   .ANY (+RW +ZI)
  }
        ; Some comment
        ZERO 0x02002000 UNINIT 0x00002000  {
   .ANY (+RW +ZI)
  }
; Some comment
NOINIT 0x02004000 UNINIT 0x00005000  {
   .ANY (+RW)
  }
}

Where is a problem? How it solve?

Thanks.

Parents
  • >>Where is a problem? How it solve?

    You have multiple LOAD REGIONS and they are separated by 256MB of VOID

    Figure out where you have non-sense generating 0x10006000 code, and stop doing that.

    Alternatively generate a .HEX file, and then pull out the 0x00000000..0x0003FFFF region into a .BIN

    The .HEX format is trivial, .ELF/AXF is a bit more complex, but not terribly so.

    Look at options in FromELF to limit specific region output. Check documentation, not a tool I use frequently.

Reply
  • >>Where is a problem? How it solve?

    You have multiple LOAD REGIONS and they are separated by 256MB of VOID

    Figure out where you have non-sense generating 0x10006000 code, and stop doing that.

    Alternatively generate a .HEX file, and then pull out the 0x00000000..0x0003FFFF region into a .BIN

    The .HEX format is trivial, .ELF/AXF is a bit more complex, but not terribly so.

    Look at options in FromELF to limit specific region output. Check documentation, not a tool I use frequently.

Children