firmware build
-
This post is deleted! -
@joke said in firmware build:
re-decompressed arm, and after recompiling
I didn't recompile it, but used the ready compiled files. Did you check that there are include subdirectories parallel to your bin directory?
The include files are necessary for the compiler to find uint32_t, which is included in stdlib.h
-
@JoergS5 D:\arm-gnu-toolchain-12.2.mpacbti-rel1-mingw-w64-i686-arm-none-eabi\arm-none-eabi\include\c++\12.2.1\stdlib.h I can find it, so the compiler path I set is D:\arm-gnu-toolchain-12.2.mpacbti-rel1-mingw-w64-i686-arm-none-eabi\arm-none-eabi\bin. These errors still occur after compiling.Thank you.
-
@joke if you have still the msys2 part in ArmGccPath setting, this may confuse the compiler. You should remove it.
-
@joke an my path is different from your:
C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.2 mpacbti-rel1\bin\
don't know why they are different, we both use 12.2 (independent from the beginning of course).
-
@joke which version of each project have you loaded into your Eclipse workspace?
-
@joke I think the issue may be that you are building an older version of the firmware with a compiler and library version more recent than we used with that version. In this case I think you can work around the issue by adding the line
#include <stdint.c>
before the lineextern void vAssertCalled(uint32_t line, const char *file) noexcept;
near the start of file nano-mallocr.c. -
@dc42 I downloaded the 3.5 version in the picture above on the website, but after downloading the suffix of the software is 3.4, I don't know how many versions I own, is there no update 3.5 series in github now?
-
@dc42 I added some code to it, but I still get new errors.
-
@JoergS5 I have deleted them in ArmGccPath.But I still get the error.
-
@joke I have no new idea, only to create everything new.
My approach building firmware is to use a stable tagged version and build it from this version. I currently use 3.5.0beta3, this compiles ok. A part of the projects don't exist with this tag, then I use the older tagged version.
My other guideline is to not use any unusual subdirectory names (no spaces, foreign characters, on different drive letters) and to use short ones.
With an error like yours, an error with Eclipse is also a possibility, so I search the newest stable Eclipse and install it new. You can install parallel to the exisiting one (you can even run both Eclipses at the same time, if you have enough RAM, but use two workspaces in this case).
-
@JoergS5 Thank you very much, I also tried to do it but there are still errors, let me ask the administrator.
-
-
@dc42 said in firmware build:
#include <stdint.c>
I found the latest version, but I tried to build, still get an error, can you help me take a look? I don't quite understand .
-
@dc42 Do you know how to set the path of this software, I don't know much about the practice in the introduction.
-
@joke I'm sorry, it should be stdint.h not stdint.c.
-
@dc42 thank you.But it has a new problem.
Here is my run log. 15:25:37 **** Incremental Build of configuration Duet2 for project RepRapFirmware ****
make -j8 all
makefile recipe for target 'all' failed
process_begin: CreateProcess(C:\Users\llr\AppData\Local\Temp\make13688-1.bat, C:\Users\llr\AppData\Local\Temp\make13688-1.bat, ...) failed.
make (e=2): 系统找不到指定的文件。make: *** [all] Error 2
"make -j8 all" terminated with exit code 2. Build might be incomplete.15:25:40 Build Failed. 2 errors, 0 warnings. (took 2s.910ms)
-
@joke looks like the make program failed to create a process. Which make program is it using? I think there may be more than on on your Windows path.
-
@dc42 16:37:22 **** Incremental Build of configuration SAM4E_RTOS for project RRFLibraries ****
make -j8 all
Building file: ../src/RTOSIface/RTOSIface.cpp
Building file: ../src/Math/DeviationAccumulator.cpp
Invoking: GNU Arm Cross C++ Compiler
Invoking: GNU Arm Cross C++ Compiler
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/Math/DeviationAccumulator.d" -MT"src/Math/DeviationAccumulator.o" -c -o "src/Math/DeviationAccumulator.o" "../src/Math/DeviationAccumulator.cpp"
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/RTOSIface/RTOSIface.d" -MT"src/RTOSIface/RTOSIface.o" -c -o "src/RTOSIface/RTOSIface.o" "../src/RTOSIface/RTOSIface.cpp"
In file included from ../src/RTOSIface/RTOSIface.cpp:8:
../src/RTOSIface/RTOSIface.h:24:11: fatal error: FreeRTOS.h: No such file or directory
24 | # include "FreeRTOS.h"
| ^~~~~~~~~~~~
compilation terminated.
../src/Math/DeviationAccumulator.cpp:11:1: error: declaration of 'DeviationAccumulator::DeviationAccumulator()' has a different exception specifier
11 | DeviationAccumulator::DeviationAccumulator() : numValues(0), sum(0.0), sumOfSquares(0.0)
| ^~~~~~~~~~~~~~~~~~~~
In file included from ../src/Math/DeviationAccumulator.cpp:8:
../src/Math/DeviationAccumulator.h:15:9: note: from previous declaration 'DeviationAccumulator::DeviationAccumulator() noexcept'
15 | DeviationAccumulator() noexcept;
| ^~~~~~~~~~~~~~~~~~~~
src/Math/subdir.mk:24: recipe for target 'src/Math/DeviationAccumulator.o' failed
make: *** [src/Math/DeviationAccumulator.o] Error 1
make: *** Waiting for unfinished jobs....
src/RTOSIface/subdir.mk:18: recipe for target 'src/RTOSIface/RTOSIface.o' failed
make: *** [src/RTOSIface/RTOSIface.o] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.16:37:22 Build Failed. 7 errors, 0 warnings. (took 628ms)
-
@joke did you include the FreeRTOS project in your Eclipse workspace? That's where file FreeRTOS.h is.