Conversation

Jarkko Sakkinen

Edited 1 year ago
macro(import_binary_as_elf Path Symbol Target)
    set(objcopy_flags -I binary -O default -B riscv)
    string(MAKE_C_IDENTIFIER ${Path} unstripped)
    add_custom_command(
        OUTPUT ${Path}.elf
        DEPENDS ${Target}
        COMMAND 
             ${CMAKE_OBJCOPY} ${objcopy_flags}
             ${Path} ${Path}.elf
        COMMAND
              ${CMAKE_OBJCOPY} -N
              _binary_${unstripped}_end ${Path}.elf
        COMMAND
              ${CMAKE_OBJCOPY} --redefine-sym
              _binary_${unstripped}_start=${Symbol}_start
              ${Path}.elf
        COMMAND
              ${CMAKE_OBJCOPY} --redefine-sym
              _binary_${unstripped}_size=${Symbol}_size
              ${Path}.elf
    )
    add_custom_target(${Symbol}_elf DEPENDS ${Path}.elf)
endmacro()

#cmake #riscv #embed #binary #elf #note

1
0
0
I don't know how I ever came up with this but looks pretty useful to remember :-)
0
0
0