Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Binary isn't being created

    Scheduled Pinned Locked Moved
    Firmware developers
    2
    3
    966
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • GizmotronX5000undefined
      GizmotronX5000
      last edited by GizmotronX5000

      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.

      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @GizmotronX5000
        last edited by

        @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.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 1
        • GizmotronX5000undefined
          GizmotronX5000
          last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA