Firmware building
-
@dc42 This is not sure what it means.But externally I didn't find the binary.
-
@qingge the binary should be called .bin and be in the Duet2 directory, a few hundred KB size.
-
-
@qingge yes, there should be more output in the build console if the build actually happened.
-
@dc42 What is this bug, can you help me see.
-
@dc42 Is that correct?
-
@qingge I have four ideas what to check:
- the project name should be RepRapFirmware, not RepRapFirmware-dev. This may lead to problems where something in the project may not find something (maybe the NULL??)
- are you using some strange project path (foreign characters, spaces in the path or alike), so the bin cannot be created?
- what arm toolchain are you using, is it not too new and not too old? (too old: some function/variable may be missing, too new: something may be deprecated and removed)
- -dev versions are risky. Sometimes something is broken in dependance to the other libraries. It is safer to use at least the tagged versions
-
@JoergS5
·the project name should be RepRapFirmware.(I have done it)
·are you using some strange project path.(I use the path in my workspace)
·I build rep-3.5,so i download 12.2.
I think this picture is successful. But i also can not find may bin in duet2. -
@qingge after the Storage - Tools come some files and then at lot of .s file with bin between them, like (my SBC folder is because I use the SBC option of Duet 3).:
So you're not only missing the bin, but the compiled files also, i. e. the compiler doesn't create files, the error is earlier than the linker.
Please check the log file for an errror earlier in the process.Sometimes it helps to clean the projects. Sometimes it helps to close the projects (not delete, just close and reopen).
-
@qingge I suggest you right click on the RepRapFirmware project and select Clean Project. Then try to build the project. Cut and paste the resulting Console output into your next post here.
-
@dc42 {--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>
--set-section-alignment <name>=<align>
Set section <name>'s alignment to <align> bytes
--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|zstd}]
Compress DWARF debug sections
--decompress-debug-sections Decompress DWARF debug sections using zlib
--elf-stt-common=[yes|no] Generate ELF common symbols with STT_COMMON
type
--verilog-data-width <number> Specifies data width, in bytes, for verilog output
-M --merge-notes Remove redundant entries in note sections
--no-merge-notes Do not attempt to remove redundant notes (default)
-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-littlearm-fdpic elf32-bigarm elf32-bigarm-fdpic elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
Info: Parallel threads used: 215:26:48 Build Finished. 0 errors, 0 warnings. (took 14s.399ms)
It is too many,so i give you the main things.
thank you very much -
@qingge it look like the objcopy step at the end failed. Is there a file Duet2CombinedFirmware.elf in the output folder? That's the same folder that contains all the .s files.
-
@dc42 No,i can not find Duet2CombinedFirmware.elf.What should i do for this problem.
Thank you -
@dc42 Do you have some good ideas? Thank you very much.
-
@qingge I noticed that it says on one of your screen shots "Internal builder is used for the build". However, the settings in the project file are to use an external builder. So I guess you must have changed them.
-
@dc42 said in Firmware building:
的设置是使用
If i choose external builder, I can't choose CDT and I don't know what to do?
-
@qingge mine is set to Gnu Make Builder.
-
@dc42 Is it okay for me to set it up like this? thank you.
-
@qingge that's probably OK, however GNU Arm Eclipse is quite old now. I recently updated the build instructions at https://github.com/Duet3D/RepRapFirmware/wiki/Building-RepRapFirmware to use MSYS2 instead.