firmware build
-
@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.
-
@dc42 10:39:08 **** Incremental Build of configuration SAM4E_RTOS for project RRFLibraries ****
make -j8 all
Building file: ../src/RTOSIface/RTOSIface.cpp
Building file: ../src/Math/DeviationAccumulator.cpp
Building file: ../src/General/SafeStrtod.cpp
Building file: ../src/General/SafeVsnprintf.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 -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -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"
Building file: ../src/General/StringBuffer.cpp
Building file: ../src/General/StringFunctions.cpp
Invoking: GNU Arm Cross C++ Compiler
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -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"
Building file: ../src/General/StringRef.cpp
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/SafeStrtod.d" -MT"src/General/SafeStrtod.o" -c -o "src/General/SafeStrtod.o" "../src/General/SafeStrtod.cpp"
Building file: ../src/General/Strnlen.cpp
Invoking: GNU Arm Cross C++ Compiler
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/StringBuffer.d" -MT"src/General/StringBuffer.o" -c -o "src/General/StringBuffer.o" "../src/General/StringBuffer.cpp"
Invoking: GNU Arm Cross C++ Compiler
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/SafeVsnprintf.d" -MT"src/General/SafeVsnprintf.o" -c -o "src/General/SafeVsnprintf.o" "../src/General/SafeVsnprintf.cpp"
Invoking: GNU Arm Cross C++ Compiler
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 -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/StringFunctions.d" -MT"src/General/StringFunctions.o" -c -o "src/General/StringFunctions.o" "../src/General/StringFunctions.cpp"
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/StringRef.d" -MT"src/General/StringRef.o" -c -o "src/General/StringRef.o" "../src/General/StringRef.cpp"
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O2 -g -D__SAM4E8E__ -DRTOS -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\include" -I"C:\Users\llr\eclipse-workspace\FreeRTOS\src\portable\GCC\ARM_CM4F" -std=gnu++11 -fabi-version=0 -MMD -MP -MF"src/General/Strnlen.d" -MT"src/General/Strnlen.o" -c -o "src/General/Strnlen.o" "../src/General/Strnlen.cpp"
../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....
In file included from ../src/RTOSIface/RTOSIface.cpp:12:
../src/RTOSIface/../General/FreelistManager.h: In function 'constexpr size_t FreelistManager::RoundedUpSize(size_t)':
../src/RTOSIface/../General/FreelistManager.h:64:9: error: body of 'constexpr' function 'constexpr size_t FreelistManager::RoundedUpSize(size_t)' not a return-statement
64 | }
| ^
../src/RTOSIface/../General/FreelistManager.h: In instantiation of 'void* FreelistManager::Allocate() [with T = ReadWriteLock::LockRecord]':
../src/RTOSIface/RTOSIface.cpp:203:2: required from here
../src/RTOSIface/../General/FreelistManager.h:69:46: error: 'constexpr size_t FreelistManager::RoundedUpSize(size_t)' called in a constant expression
69 | return Freelist<RoundedUpSize(sizeof(T))>::AllocateItem();
| ~~~~~~~~~~~^
../src/RTOSIface/../General/FreelistManager.h:60:33: note: 'constexpr size_t FreelistManager::RoundedUpSize(size_t)' declared here
60 | inline constexpr size_t RoundedUpSize(size_t rawSize) noexcept
| ^
../src/RTOSIface/../General/FreelistManager.h:69:46: note: in template argument for type 'unsigned int'
69 | return Freelist<RoundedUpSize(sizeof(T))>::AllocateItem();
| ~~~~~~~~~~~^
../src/RTOSIface/../General/FreelistManager.h: In instantiation of 'void FreelistManager::Release(void*) [with T = ReadWriteLock::LockRecord]':
../src/RTOSIface/RTOSIface.cpp:203:2: required from here
../src/RTOSIface/../General/FreelistManager.h:69:46: error: 'constexpr size_t FreelistManager::RoundedUpSize(size_t)' called in a constant expression
../src/RTOSIface/../General/FreelistManager.h:60:33: note: 'constexpr size_t FreelistManager::RoundedUpSize(size_t)' declared here
60 | inline constexpr size_t RoundedUpSize(size_t rawSize) noexcept
| ^
../src/RTOSIface/../General/FreelistManager.h:69:46: note: in template argument for type 'unsigned int'
69 | return Freelist<RoundedUpSize(sizeof(T))>::AllocateItem();
| ~~~^
src/RTOSIface/subdir.mk:18: recipe for target 'src/RTOSIface/RTOSIface.o' failed
make: *** [src/RTOSIface/RTOSIface.o] Error 1
Finished building: ../src/General/Strnlen.cpp
Finished building: ../src/General/StringBuffer.cppFinished building: ../src/General/StringFunctions.cpp
Finished building: ../src/General/SafeStrtod.cpp
Finished building: ../src/General/StringRef.cpp
Finished building: ../src/General/SafeVsnprintf.cpp
"make -j8 all" terminated with exit code 2. Build might be incomplete.
10:39:09 Build Failed. 9 errors, 0 warnings. (took 1s.326ms)
-
@dc42 thank you very much.
-
@joke you appear to be using the wrong compiler option, I see std=gnu++11 when it should be std=gnu++17.
-
@dc42 Where should I choose?
-
@dc42 Is this correct?