Page 4 of 5

Re: How to compile the firmware

Posted: Fri Jun 26, 2020 9:04 am
by mck1117
puff wrote:
Fri Jun 26, 2020 8:41 am
as far as I remember, git clone takes up too much space and network traffic, downloading unnecessary hardware-related files, datasheets, etc. I don't remember if I managed to find a solution to download it partially ;-(
... are you cloning every single time? You just need to

Code: Select all

git pull
to update to latest.

Re: How to compile the firmware

Posted: Fri Jun 26, 2020 5:10 pm
by petersma
Thanks,
you are right that my style downloads all files and this is only simple and ugly way to do it. My style is KISS (Keep It Simple Stubid).

I have done it once. I'm not good using git. My biggest problem is that my chinese STM32F407VGT6 board don't run this code. I'm searching the problem, and reason compiling firmware is only test, that I have all files ok. If I find the problem, I must compile it with my modifications. While my modification are not ready, I have no reason to download code again. Maybe I must do it never.
To recompile project I need only 'make clean' or 'make'. Maybe I made project to Eclipse and compile it pressing button. This is also good way to debug code.

All says that buy STM32F4-DISCOVERY board. They are simply right, but I don't do so. It's my hoppy to find problem and fix it. I leaning a lot with it.

My problem is this: https://rusefi.com/forum/viewtopic.php?f=2&t=1778

Re: How to compile the firmware

Posted: Fri Jun 26, 2020 7:13 pm
by AndreyB
70% of the content in the post above should not be in this topic. Please stay on-topic.

Re: How to compile the firmware

Posted: Fri Mar 05, 2021 7:04 pm
by SlowRiot
petersma wrote:
Fri Jun 26, 2020 1:40 am
The Linux way!

...
Building on Linux, it's sufficient to do:

Code: Select all

git clone --recursive https://github.com/rusefi/rusefi.git
cd rusefi/firmware
make -j $(nproc)
Recursive clone fetches all submodules and make builds in parallel with a number of threads suited to your CPU.

Re: How to compile the firmware

Posted: Fri Mar 05, 2021 9:53 pm
by puff
This will make the local copy of the whole bunch of not needed stuff - hardware files, etc. That's a pity there is still no known way to copy just the source files required for firmware build.

Re: How to compile the firmware

Posted: Fri Mar 05, 2021 9:59 pm
by mck1117
puff wrote:
Fri Mar 05, 2021 9:53 pm
This will make the local copy of the whole bunch of not needed stuff - hardware files, etc. That's a pity there is still no known way to copy just the source files required for firmware build.
Meh, storage is cheap. A full clone is only ~4 gig. A lot of that is the submodule for the MCU definition files for debugging which are extremely compressed, so the download is far smaller than 4 gig.

Re: How to compile the firmware

Posted: Sat Mar 06, 2021 10:48 pm
by dbh97
I haven't tried it, but

Code: Select all

--depth 1
should reduce the download size.

Re: How to compile the firmware

Posted: Sun Mar 07, 2021 9:07 am
by puff

Re: How to compile the firmware

Posted: Sun Apr 25, 2021 4:49 pm
by Boostonabudget
Having some issues getting anything to build firmware. Have Chibistudio installed with gnu gcc arm and everything I was told to get along with adding plenty of path directories. Not sure what's wrong and haven't deal much with these before so help would be very much appreciated

This is the error I get everytime:

Makefile:171: ../ChibiOS/os/common/startup/ARMCMx/compilers/GCC/mk/rules.mk: such file or directory
make: *** No rule to make target '../ChibiOS/os/common/startup/ARMCMx/compileGCC/mk/rules.mk'. Stop.
./build_bootloader.sh: line 8: arm-none-eabi-objcopy: command not found
./build_bootloader.sh: line 10: arm-none-eabi-objcopy: command not found
rm: cannot remove 'build/': No such file or directory
Makefile:187: ChibiOS/os/common/startup/ARMCMx/compilers/GCC/mk/rules.mk: No h file or directory
make: *** No rule to make target 'ChibiOS/os/common/startup/ARMCMx/compilers//mk/rules.mk'. Stop.
dd: failed to open 'build/wideband.bin': No such file or directory
./build_wideband.sh: line 19: arm-none-eabi-objcopy: command not found
./build_wideband.sh: line 22: crc32: command not found
./build_wideband.sh: line 22: build/wideband_crc.bin: No such file or directo
./build_wideband.sh: line 25: build/wideband_image.bin: No such file or direcy
cat: bootloader/build/wideband_bootloader.padded.bin: No such file or directo
cat: build/wideband_image.bin: No such file or directory
xxd: build/wideband_image.bin: No such file or directory

Re: How to compile the firmware

Posted: Sun Apr 25, 2021 4:57 pm
by AndreyB
Boostonabudget wrote:
Sun Apr 25, 2021 4:49 pm
Having some issues getting anything to build firmware. Have Chibistudio installed with gnu gcc arm and everything I was told to get along with adding plenty of path directories.
I see at least three separate red flags here. Please close Chibistudio and focus on compiling things from command line. At the moment I suspect that you are compiling the wrong thing or maybe you've cloned source code from a wrong place or else, at the moment too much stuff is broken too badly.

There is an expectation that anyone who needs to compile the code should be able to figure it out without much hand holding. It is my honest, respectful and blunt opinion that most of the people unable to compile the code with all the information publicly available should not be doing it at all.

Well, I have no right to tell you how to spend your time but I have to be careful about how I spend my time supporting efforts which are not going well in my opinion.

Re: How to compile the firmware

Posted: Mon Apr 26, 2021 8:53 am
by Boostonabudget
AndreyB wrote:
Sun Apr 25, 2021 4:57 pm
Boostonabudget wrote:
Sun Apr 25, 2021 4:49 pm
Having some issues getting anything to build firmware. Have Chibistudio installed with gnu gcc arm and everything I was told to get along with adding plenty of path directories.
I see at least three separate red flags here. Please close Chibistudio and focus on compiling things from command line. At the moment I suspect that you are compiling the wrong thing or maybe you've cloned source code from a wrong place or else, at the moment too much stuff is broken too badly.

There is an expectation that anyone who needs to compile the code should be able to figure it out without much hand holding. It is my honest, respectful and blunt opinion that most of the people unable to compile the code with all the information publicly available should not be doing it at all.

Well, I have no right to tell you how to spend your time but I have to be careful about how I spend my time supporting efforts which are not going well in my opinion.
i totally agree and I'm not asking for hand outs, i have definitely given up on chibistudio and have got wsl up and running now. ill go through the forum and see what i can find

Re: How to compile the firmware

Posted: Mon Apr 26, 2021 1:15 pm
by AndreyB
Boostonabudget wrote:
Sun Apr 25, 2021 4:49 pm
This is the error I get everytime:

Makefile:171: ../ChibiOS/os/common/startup/ARMCMx/compilers/GCC/mk/rules.mk: such file or directory
Damn, you are not compiling rusEFI! You are compiling https://github.com/mck1117/wideband/ It's unfortunate that such an important detail was omitted in your question. rusefi/rusefi and mck1117/wideband are related but very different repositories with different owners and different... everything.

And you have not downloaded git submodules so you are getting legit "no such file" while trying to compile partial source code.

Re: How to compile the firmware

Posted: Tue May 25, 2021 8:34 am
by Matzs
I am new to IDE ECLIPSE and I have a problem compiling the firmware.
I would like to test the code on a DevEBox board:
https://stm32-base.org/boards/STM32F407VGT6-STM32F4XX-M
I would like to change
* PC10 - UART4 TX
* PC11 - UART4 Rx
to use SD card from PCB

for the moment I can not compile the firmware and i need your precious help.

:arrow: No rule to make target 'lapi.c'

Image
google picture hosting

Re: How to compile the firmware

Posted: Tue May 25, 2021 9:52 am
by AndreyB
git submodule update --init

Re: How to compile the firmware

Posted: Thu May 27, 2021 2:48 pm
by Matzs
Thank you very much, I did not understand that it was necessary to import the Github with CMD.
Now it works fine and i have compiled and flash my 1st modified firmware on my demo board.
8-)

Re: How to compile the firmware

Posted: Thu Dec 30, 2021 11:30 am
by puff
okay, once again, winter madness..

I git cloned the repo, entered /firmware directory, did 'make' and got the following error:

Code: Select all

Compiling check.c
cc1: error: -Werror=implicit-fallthrough: no option -Wimplicit-fallthrough
make: *** [build/obj/check.o] Error 1
I downloaded the latest and gratest arm-none-eabi, which by default was installed to /Applications/ARM

With make GCC_ARM_PATH="/Applications/ARM/bin"
I still get the same error.

Code: Select all

/Applications/ARM/bin/arm-none-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=/Applications/ARM/bin/arm-none-eabi-gcc
COLLECT_LTO_WRAPPER=/Applications/ARM/bin/../lib/gcc/arm-none-eabi/10.3.1/lto-wrapper
Target: arm-none-eabi
Configured with: /tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/src/gcc/configure --target=arm-none-eabi --prefix=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native --libexecdir=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/lib --infodir=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/install-native/arm-none-eabi --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --with-gmp=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/build-native/host-libs/usr --with-mpfr=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/build-native/host-libs/usr --with-mpc=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/build-native/host-libs/usr --with-isl=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/build-native/host-libs/usr --with-libelf=/tmp/jenkins-GCC-10-pipeline-338_20211018_1634516195/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-lstdc++ -lm' --with-pkgversion='GNU Arm Embedded Toolchain 10.3-2021.10' --with-multilib-list=rmprofile,aprofile
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)

Re: How to compile the firmware

Posted: Thu Dec 30, 2021 12:11 pm
by puff
вроде бы пошла сборка. прописал путь до новой версии через sudo nano /etc/paths
собралась минуты за четыре на десятилетнем ноуте.

Code: Select all

Creating build/rusefi.list
Creating build/rusefi.hex
Creating build/rusefi.bin
Creating build/rusefi.dmp

   text	   data	    bss	    dec	    hex	filename
 598336	   1996	 189168	 789500	  c0bfc	build/rusefi.elf
Creating build/rusefi.list

Done

Done
Creating build/rusefi.srec
bss Total size: 95925
ram4 Total size: 0
text Total size: 458480
data Total size: 1972
rodata Total size: 136722
 19 .ram4         0000eab8  10000000  08092914  000c0000  2**3

Re: How to compile the firmware

Posted: Sat Feb 12, 2022 2:54 pm
by AndreyB

Re: How to compile the firmware

Posted: Wed Jul 27, 2022 3:45 am
by pcproa
Hello,

I have had a car running on a Proteus board for a few months now, and decided I would like to mess with the firmware a bit to see what I could change/add.

I tried installing the components needed to compile and I'm having quite a bit of trouble. I first wanted to get MAKE up and running. I have done steps 1 and 2 in the original post. I've added the make path to my environment variable, and "arm-none-eabi-gcc -v" came back with the version 10.3-2021.10.

When I do make -v in cmd.exe on Windows 10, I get GNU Make 4.3

I then try to run a make in the RusEFI Firmware folder and first I was getting complaints about needing GIT in my path.

After first downloading GIT, then git init and then git submodule update, and running make in the firmware folder again, I now get

Chibios: Invoking "git submodule update --init"
Invoked "git submodule update --init"
rusefi.mk:7: *** Please run 'make' again. Please make sure you have 'git' command in PATH. Stop.


After fighting with that for a few hours with no success, I decided to shift my attempts to Eclipse. There's nothing like adding extra complications on your quest to solving a problem

Something I should note is that "http://gnuarmeclipse.sourceforge.net/updates" doesn't work. 502 Bad Gateway is the response in my browser, and when I try to do wayback machine, it's basically more of the same response. I noticed further down in the posts that OpenOCD was recommended. But all links to that are also broken
https://svn.code.sf.net/p/rusefi/code/trunk/misc/openocd/run_openocd.bat

Also in Eclipse, I do not have "GNU ARM C/C++ Cross Compiler" as suggested I need in the first post. I've tried downloading files from GNU Build tools hoping it would be in there instead but nope.

I am not entirely sure, but I feel like the instructions for installing the software to modify the ECU code doesn't really apply to everything we are using today. The instructions are up to 9 years old at this point. And with that, quite a few of the addins and changes to the procedure are not condensed or very clear.

Is there an updated procedure I can try to installing this? Or are there some steps I am missing? Where can I download all of the current tools to be able to compile the firmware?

Thanks,

Patrick

Re: How to compile the firmware

Posted: Wed Jul 27, 2022 6:50 am
by AndreyB
Please post screenshots of the part where make invokes "git submodule update --init"
How comes this does not initialize the missing submodules? Or is it something like special characters in your path and relevant file test in Makefile is failing?

Re: How to compile the firmware

Posted: Wed Jul 27, 2022 6:54 am
by mck1117
AndreyB wrote:
Wed Jul 27, 2022 6:50 am
Please post screenshots of the part where make invokes "git submodule update --init"
How comes this does not initialize the missing submodules? Or is it something like special characters in your path and relevant file test in Makefile is failing?
This being flaky is why I prefer the solution here that just tells the user what to do instead of trying to do magically do it (which may not work!): https://github.com/mck1117/wideband/blob/0572719783733221aebfcab1f6b2a3e969f1392c/firmware/Makefile#L104

Re: How to compile the firmware

Posted: Wed Jul 27, 2022 6:55 am
by AndreyB
mck1117 wrote:
Wed Jul 27, 2022 6:54 am
This being flaky
is it flaky? why is it flaky? would any engineer be able to fix it?

Re: How to compile the firmware

Posted: Fri Jul 29, 2022 3:30 am
by pcproa
AndreyB wrote:
Wed Jul 27, 2022 6:50 am
Please post screenshots of the part where make invokes "git submodule update --init"
How comes this does not initialize the missing submodules? Or is it something like special characters in your path and relevant file test in Makefile is failing?
Sorry, I didn't realize my post was authorized. Here is the screenshot as I type it out in cmd.exe of Windows 10

Re: How to compile the firmware

Posted: Fri Jul 29, 2022 5:32 am
by AndreyB
please type

Code: Select all

git submodule update --init
and post results

Re: How to compile the firmware

Posted: Fri Jul 29, 2022 6:54 am
by mck1117
the folder name rusefi-master is a hint - how did you download the repo? Did you download a zip using this button?
image.png
image.png (51.83 KiB) Viewed 34914 times

Re: How to compile the firmware

Posted: Fri Jul 29, 2022 10:09 am
by pcproa
AndreyB wrote:
Fri Jul 29, 2022 5:32 am
please type

Code: Select all

git submodule update --init
and post results
Screenshot.PNG
Screenshot.PNG (6.11 KiB) Viewed 34903 times
I get a small (1 second) delay after hitting the Enter key, then it just waits for me to enter the next command as seen here


mck1117 wrote:
Fri Jul 29, 2022 6:54 am
the folder name rusefi-master is a hint - how did you download the repo? Did you download a zip using this button?
Yes, that is how I downloaded it. I hit "Download ZIP"

Re: How to compile the firmware

Posted: Fri Jul 29, 2022 10:45 am
by AndreyB
I shall add a passive-agressive check telling people to clone properly

Re: How to compile the firmware

Posted: Mon Jan 02, 2023 9:48 pm
by Tom_Alp
Hi Everybody,
Happy New Year.
I'm facing some issues following this tutorial.
I'm working with Win10, I did install arm-none-eabi and make (with chocolatey).
Make is functionnal in PowerShell but I need to manually create folders before. Mkdir -p command is not ok if bash. I think this is the source of the further problems.

Code: Select all

PS C:\Users\**\rusEFI\Source\Local_Git\rusefi\firmware> make
No CCACHE_DIR
PROJECT_BOARD: f407-discovery
PROJECT_CPU:   ARCH_STM32F4
CPU_HWLAYER:   ports/stm32/stm32f4
CONFDIR:       ./hw_layer/ports/stm32/stm32f4/cfg
LDSCRIPT:      ./hw_layer/ports/stm32/stm32f4/STM32F4.ld
bss Total size: 110818
ram4 Total size: 0
text Total size: 408444
data Total size: 2581
rodata Total size: 105852
 20 .ram4         0000eba8  10000000  0807f3a4  000a0000  2**3
For exemple if I remove /firmware/pch/pch.h.gch/firmware/ directory, it raises the following error :

Code: Select all

PS C:\Users\**\rusEFI\Source\Local_Git\rusefi\firmware> make
No CCACHE_DIR
PROJECT_BOARD: f407-discovery
PROJECT_CPU:   ARCH_STM32F4
CPU_HWLAYER:   ports/stm32/stm32f4
CONFDIR:       ./hw_layer/ports/stm32/stm32f4/cfg
LDSCRIPT:      ./hw_layer/ports/stm32/stm32f4/STM32F4.ld
La syntaxe de la commande n’est pas correcte.
make: *** [rusefi_pch.mk:10: pch/pch.h.gch/firmware] Error 1
I'm trying to make this work with Eclipse IDE, but I'm also facing issues :
I've imported the git project, installed xpack and dependancies.
When I launch a make with a right click on firmware > Build Project. I get the same result (and issue) as with Powershell with a more verbose mode.
Thus if I request a "Build All" command, after a couple of minutes, I get the following code in the pop-up window :

Code: Select all

Errors occurred during the build.
Errors running builder 'CDT Builder' on project 'Boot'.
Cannot invoke "org.eclipse.cdt.managedbuilder.core.IOutputType.getOutputExtensions(org.eclipse.cdt.managedbuilder.core.ITool)" because "outType" is null
Errors running builder 'CDT Builder' on project 'Prog'.
Cannot invoke "org.eclipse.cdt.managedbuilder.core.IOutputType.getOutputExtensions(org.eclipse.cdt.managedbuilder.core.ITool)" because "outType" is null
During the build, the console indicates

Code: Select all

'cat' not recognized as an internal or external command
for every compiled file.

When finished, when I go to the "Problems" tab, I get the following
image.png
image.png (129.18 KiB) Viewed 32451 times
I guess I have many issues crossing each other, and I expect to solve most of them while being able to handle mkdir and cat command with makefile. If anybody can help me to solves this, it would be highly appreciated ^^.

Thanks in advance.

Re: How to compile the firmware

Posted: Mon Jan 02, 2023 10:19 pm
by AndreyB
I do not use powershell, I use either windows+Cygwin or Windows Subsystem for Linux which is probably the wiser option these days.
Tom_Alp wrote:
Mon Jan 02, 2023 9:48 pm
For exemple if I remove /firmware/pch/pch.h.gch/firmware/ directory, it raises the following error :
Why are you trying to remove random folders? That's an unnatural thing to do, please use 'make clean' if you need to clean for any reason.
Tom_Alp wrote:
Mon Jan 02, 2023 9:48 pm
project 'Boot'.
I think you should not have project "Boot", I think your project in Project Explorer should be "firmware" see left top corner of the screenshot
image.png
image.png (146.9 KiB) Viewed 32450 times

Re: How to compile the firmware

Posted: Mon Jan 02, 2023 10:21 pm
by AndreyB
Pretty much see first post
image.png
image.png (119.29 KiB) Viewed 32449 times