rusefi/firmware
rusefi 73ab57cdfb maybe EFI_CONSOLE_TX_BRAIN_PIN 2020-05-14 00:02:10 -04:00
..
ChibiOS@1a2c5967dc Update chibios (#1364) 2020-04-25 16:32:32 -04:00
ChibiOS-Contrib@8f7c2d187b Revert "Fresh generated - auto" 2020-04-18 19:11:47 -04:00
bootloader Perf Trace Improvements (#1383) 2020-04-29 10:53:35 -04:00
config maybe EFI_CONSOLE_TX_BRAIN_PIN 2020-05-14 00:02:10 -04:00
console new LED logic: constant WARNING if VBATT is below 7v 2020-05-13 01:17:48 -04:00
controllers SD card for MRE 2020-05-13 23:26:28 -04:00
development fix unlock bug (#1384) 2020-04-29 16:42:55 -04:00
docs getting ready for #631 2019-01-27 21:32:41 -05:00
ext #631 TIME_MS2I mostly 2019-01-28 20:00:17 -05:00
ext_algo unifying_file_naming 2019-03-29 09:11:13 -04:00
hw_layer new LED logic: constant WARNING if VBATT is below 7v 2020-05-13 01:52:27 -04:00
iar_egt auto-sync 2015-07-10 09:01:56 -04:00
init CLT/IAT/Aux in the new sensor world (#1269) 2020-04-07 16:07:09 -04:00
integration mck1117:secondary-tps-config progress 2020-05-10 10:11:51 -04:00
tunerstudio Fresh generated - auto 2020-05-12 14:30:22 -04:00
util short term fuel trim: part 2 (#1405) 2020-05-07 08:52:32 -04:00
.cproject refreshing Eclipse exclude list 2019-07-05 20:29:39 -04:00
.gitignore software jump to DFU #809 2019-08-04 00:21:44 -04:00
.project reviving stm32f1 2018-12-26 22:17:51 -05:00
Doxyfile add sensor framework, tests (#929) 2019-09-21 14:33:38 -04:00
DoxygenLayout.xml auto-sync 2015-07-10 09:01:56 -04:00
Makefile Update chibios (#1364) 2020-04-25 16:32:32 -04:00
build-notes.txt skeleton & docs (#995) 2019-11-03 08:41:14 -05:00
clean.bat reducing scripts duplication 2019-06-07 19:54:15 -04:00
clean_build.bat fixing scripts 2017-03-15 21:40:07 -05:00
clean_compile_two_versions.bat Remove chibios trace flag (#1037) 2019-12-02 19:11:07 -05:00
compile.bat docs 2019-04-12 18:24:43 -04:00
compile_and_program.bat more info into jenkins output 2019-07-14 15:00:56 -04:00
cov_config.bat auto-sync 2015-07-10 09:01:56 -04:00
cov_run.bat auto-sync 2016-03-15 17:01:54 -04:00
coverity.yml auto-sync 2016-09-03 23:02:47 -04:00
dump.bat auto-sync 2015-07-10 09:01:56 -04:00
dump_iar.bat auto-sync 2015-07-10 09:01:56 -04:00
dump_release.bat auto-sync 2015-07-10 09:01:56 -04:00
egt2can.cpp EFI_CONSOLE_UART_DEVICE, flash->hw_ports, Fix TLE6240 and misc.fixes (#793) 2019-05-05 11:06:27 -04:00
exception.txt auto-sync 2015-07-10 09:01:56 -04:00
flash.bat auto-sync 2015-07-10 09:01:56 -04:00
flash_dfu.bat notes to self 2019-12-16 01:47:34 -05:00
flash_dfu.sh A Unix shell script matching the functionality flash_dfu.bat 2019-11-11 20:25:55 -05:00
flash_erase407.bat need more DevOps :( trying with 'sleep' 2019-06-01 20:25:51 -04:00
flash_erase767.bat docs 2019-07-28 18:56:23 -04:00
flash_openocd407.bat F7 progress 2019-02-21 08:27:08 -05:00
flash_openocd767.bat F7 progress 2019-02-21 08:27:08 -05:00
flash_reboot_dfu.bat command line switch to DFU 2020-05-08 21:11:11 -04:00
flash_release.bat reducing or increasing comlexity with two sets of files 2019-06-08 16:15:32 -04:00
gen_config.bat progress - firing order logic to be re-evaluated every time we generate 2020-05-04 23:54:28 -04:00
gen_config.sh scripts: add gen_config, gen_config_board and gen_enum_to_string for Linux (#1081) 2020-01-02 18:58:28 -05:00
gen_config_board.bat progress - firing order logic to be re-evaluated every time we generate 2020-05-04 23:54:28 -04:00
gen_config_board.sh scripts: add gen_config, gen_config_board and gen_enum_to_string for Linux (#1081) 2020-01-02 18:58:28 -05:00
gen_enum_to_string.bat Utility class which writes same line both to stdout and file 2019-06-17 20:21:32 -04:00
gen_enum_to_string.sh scripts: add gen_config, gen_config_board and gen_enum_to_string for Linux (#1081) 2020-01-02 18:58:28 -05:00
gen_firing_order.bat firing order tool integration 2019-11-24 23:49:05 -05:00
gen_fsio_example.bat VAG coolang fan logic 2019-05-02 21:54:50 -04:00
gen_live_documentation.bat better script name 2020-02-22 15:38:21 -05:00
gen_ptrace_enums.bat PerfTraceTool 2019-11-25 00:57:36 -05:00
gen_system_fsio.bat auto-sync 2017-01-19 17:04:15 -05:00
gen_trigger_images.bat date&docs 2020-05-09 09:35:34 -04:00
generate_docs.bat auto-sync 2015-07-10 09:01:56 -04:00
generate_memory_usage_report.bat worth it's own command 2019-02-10 23:26:00 -05:00
global.h Dont cache dma buffers (#1110) 2020-01-29 00:32:43 -05:00
globalaccess.h happy new year 2020-01-08 00:02:40 -05:00
kill_for_coverity.c auto-sync 2015-07-10 09:01:56 -04:00
license.txt auto-sync 2015-07-10 09:01:56 -04:00
main.cpp happy new year unification 2020-01-13 21:57:43 -05:00
main_hardfault.c This black magic improves hard fault debugging experience 2019-09-22 21:28:19 -04:00
make4.bat ugly reality 2019-01-04 16:28:50 -05:00
os_access.h code style 2020-04-01 21:32:21 -04:00
readme.md skeleton & docs (#995) 2019-11-03 08:41:14 -05:00
reboot_ecu.bat command line utiity to reboot rusEfi 2019-08-23 21:01:37 -04:00
run_hw_test.bat docs :( 2019-12-21 19:50:16 -05:00
rusefi.cpp class constructors are a great way to have simple initialization sequence 2020-05-03 11:49:06 -04:00
rusefi.h code style 2020-01-26 13:58:47 -05:00
rusefi.mk remove (#1188) 2020-03-13 17:19:29 -04:00
rusefi_rules.mk Fix master (#1134) 2020-02-08 16:34:29 -05:00
svnversion.h poke 2020-04-24 12:30:38 -04:00
update_version.bat current GIT hash is now available to firmware source code 2019-02-02 19:47:16 -05:00

readme.md

Doxygen

Q&A on source code

See also ../unit_tests

This directory contains the source code for the RusEFI firmware.

The ideal is that typical end users should be able to use pre-built firmware. They should not need to modify or even rebuild from the source code for basic use, but building from the source code provides the opportunity for optimization, supporting unexpected engine configurations, and specialized enhancements.

TL;DR

make PROJECT_BOARD=microrusefi PROJECT_CPU=ARCH_STM32F4

Environment

Rebuilding from source code requires this firmware, a modern C/C++ compiler for embedded ARM systems, and a platform that supports 'make' based builds.

While many compilers have the potential to work, we suggest using the official ARM version of GCC available at launchpad.net.

Linux and MacOS systems should have the software development tools, primarily 'make', pre-installed or readily installed. MS-Windows requires selecting and installing a Unix-compatible system environment.

Note that the developers are volunteers, with varied motivations. These motivations often include using leading-edge language and build system concepts, requiring recent versions of tools. Should you encounter build problems, review the latest version of this document.

Expected Future Changes

The firmware build is moving toward a system that separates board features from processor features. This will require specifying both the board type and specific processor.

The existing system evolved based on the original RusEFI boards. Those used 'STM32 Discovery' development boards plugged into base boards that held the ECU-specific chips. That approach resulted in hard-coded assumption about pin assignments, and associations of hardware with a specific processor variant. That legacy is slowly being cleaned up, but is still evident in some settings and limitations.