Binary isn't being created



  • I am attempting to build the project using the new project format for 2.02. I was able to successfully do it in 2.01 and 2.02RC1.

    I get the following "error":
    arm-none-eabi-objcopy -O binary C:\Eclipse\Firmware 2.02\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.elf C:\Eclipse\Firmware 2.02\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.bin
    Usage: arm-none-eabi-objcopy [option(s)] in-file [out-file]
    Copies a binary file, possibly transforming it in the process
    The options are:
    -I --input-target <bfdname> Assume input file is in format <bfdname>
    -O --output-target <bfdname> Create an output file in format <bfdname>
    -B --binary-architecture <arch> Set output arch, when input is arch-less
    -F --target <bfdname> Set both input and output format to <bfdname>
    --debugging Convert debugging information, if possible
    -p --preserve-dates Copy modified/access timestamps to the output
    -D --enable-deterministic-archives
    Produce deterministic output when stripping archives
    -U --disable-deterministic-archives
    Disable -D behavior (default)
    -j --only-section <name> Only copy section <name> into the output
    --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>
    -R --remove-section <name> Remove section <name> from the output
    --remove-relocations <name> Remove relocations from section <name>
    -S --strip-all Remove all symbol and relocation information
    -g --strip-debug Remove all debugging symbols & sections
    --strip-dwo Remove all DWO sections
    --strip-unneeded Remove all symbols not needed by relocations
    -N --strip-symbol <name> Do not copy symbol <name>
    --strip-unneeded-symbol <name>
    Do not copy symbol <name> unless needed by
    relocations
    --only-keep-debug Strip everything but the debug information
    --extract-dwo Copy only DWO sections
    --extract-symbol Remove section contents but keep symbols
    -K --keep-symbol <name> Do not strip symbol <name>
    --keep-file-symbols Do not strip file symbol(s)
    --localize-hidden Turn all ELF hidden symbols into locals
    -L --localize-symbol <name> Force symbol <name> to be marked as a local
    --globalize-symbol <name> Force symbol <name> to be marked as a global
    -G --keep-global-symbol <name> Localize all symbols except <name>
    -W --weaken-symbol <name> Force symbol <name> to be marked as a weak
    --weaken Force all global symbols to be marked as weak
    -w --wildcard Permit wildcard in symbol comparison
    -x --discard-all Remove all non-global symbols
    -X --discard-locals Remove any compiler-generated symbols
    -i --interleave[=<number>] Only copy N out of every <number> bytes
    --interleave-width <number> Set N for --interleave
    -b --byte <num> Select byte <num> in every interleaved block
    --gap-fill <val> Fill gaps between sections with <val>
    --pad-to <addr> Pad the last section up to address <addr>
    --set-start <addr> Set the start address to <addr>
    {--change-start|--adjust-start} <incr>
    Add <incr> to the start address
    {--change-addresses|--adjust-vma} <incr>
    Add <incr> to LMA, VMA and start addresses
    {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>
    Change LMA and VMA of section <name> by <val>
    --change-section-lma <name>{=|+|-}<val>
    Change the LMA of section <name> by <val>
    --change-section-vma <name>{=|+|-}<val>
    Change the VMA of section <name> by <val>
    {--[no-]change-warnings|--[no-]adjust-warnings}
    Warn if a named section does not exist
    --set-section-flags <name>=<flags>
    Set section <name>'s properties to <flags>
    --add-section <name>=<file> Add section <name> found in <file> to output
    --update-section <name>=<file>
    Update contents of section <name> with
    contents found in <file>
    --dump-section <name>=<file> Dump the contents of section <name> into <file>
    --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>
    --long-section-names {enable|disable|keep}
    Handle long section names in Coff objects.
    --change-leading-char Force output format's leading character style
    --remove-leading-char Remove leading character from global symbols
    --reverse-bytes=<num> Reverse <num> bytes at a time, in output sections with content
    --redefine-sym <old>=<new> Redefine symbol name <old> to <new>
    --redefine-syms <file> --redefine-sym for all symbol pairs
    listed in <file>
    --srec-len <number> Restrict the length of generated Srecords
    --srec-forceS3 Restrict the type of generated Srecords to S3
    --strip-symbols <file> -N for all symbols listed in <file>
    --strip-unneeded-symbols <file>
    --strip-unneeded-symbol for all symbols listed
    in <file>
    --keep-symbols <file> -K for all symbols listed in <file>
    --localize-symbols <file> -L for all symbols listed in <file>
    --globalize-symbols <file> --globalize-symbol for all in <file>
    --keep-global-symbols <file> -G for all symbols listed in <file>
    --weaken-symbols <file> -W for all symbols listed in <file>
    --add-symbol <name>=[<section>:]<value>[,<flags>] Add a symbol
    --alt-machine-code <index> Use the target's <index>'th alternative machine
    --writable-text Mark the output text as writable
    --readonly-text Make the output text write protected
    --pure Mark the output file as demand paged
    --impure Mark the output file as impure
    --prefix-symbols <prefix> Add <prefix> to start of every symbol name
    --prefix-sections <prefix> Add <prefix> to start of every section name
    --prefix-alloc-sections <prefix>
    Add <prefix> to start of every allocatable
    section name
    --file-alignment <num> Set PE file alignment to <num>
    --heap <reserve>[,<commit>] Set PE reserve/commit heap to <reserve>/
    <commit>
    --image-base <address> Set PE image base to <address>
    --section-alignment <num> Set PE section alignment to <num>
    --stack <reserve>[,<commit>] Set PE reserve/commit stack to <reserve>/
    <commit>
    --subsystem <name>[:<version>]
    Set PE subsystem to <name> [& <version>]
    --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]
    Compress DWARF debug sections using zlib
    --decompress-debug-sections Decompress DWARF debug sections using zlib
    --elf-stt-common=[yes|no] Generate ELF common symbols with STT_COMMON
    type
    -v --verbose List all object files modified
    @<file> Read options from <file>
    -V --version Display this program's version number
    -h --help Display this output
    --info List object formats & architectures supported
    arm-none-eabi-objcopy: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
    make[1]: [post-build] Error 1 (ignored)

    It looks like it is building properly, but arm-none-eabi-objcopy isn't able to convert the .elf to a .bin
    Any idea why that might be?

    I am following the instruction from BuildInstructions.md, and this is for the current version, 2.02. I am using 1 version newer of Eclipse (2018-12) than the instructions recommend.


  • administrators

    @gizmotronx5000 said in Binary isn't being created:

    I get the following "error":
    arm-none-eabi-objcopy -O binary C:\Eclipse\Firmware 2.02\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.elf C:\Eclipse\Firmware 2.02\RepRapFirmware\Duet2_RTOS/Duet2CombinedFirmware.bin

    The spaces in the path "C:\Eclipse\Firmware 2.02" are probably causing the problem. Either use a path without spaces, or change the objcopy line in the project to use quotation marks around the filenames.



  • Yep, that was the problem. I knew it was going to be something simple I was forgetting. I added single quotes around the file names in the post-build step and it worked. Thanks for the help.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.