firmware build
-
@dc42 I set it up this way, but there are still these errors, can you help me see what's going on.
-
@joke your ArmGccPath looks wrong, David's and my are ...eabi/12.2 mpacbti-rel1/bin, but your setting is ...eabi/bin, so there is missing a subdir. I expcect you extracted somehow only the exe file subdir, but the compiler needs the include subdir and maybe other subdirs also which are parallel to it.
If I remember correctly, I had a similar situation unpacking a zip file version which didn't include all subdirs, and solved it by using the installer version. This installed all which is needed.
-
@JoergS5 Thank you, I re-decompressed arm, and after recompiling, there was a new problem, is this set wrong
-
@joke 'make' is not part of the ARM compiler bundle. It is an optional component of msys2 that has to be installed separately.
-
-
@joke add C:\msys64\usr\bin to your PATH in windows. Then exit and reload Eclipse (otherwise it won't pick up changes to the Windows path).
-
@dc42 I made these changes, but I still have this error.
-
@dc42 I tried to do this and could find make, but these new errors appear.
-
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.