skeleton & docs (#995)
* Documentation additions and clarifications. Added config/boards/skeleton/ as an example and starting point for board-specific support. * Describe where the generated files came from. * Minor rewording * Delete mistakenly added emacs backups * Added an overall description and build notes
This commit is contained in:
parent
5caaca5607
commit
359f7c437b
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
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 which
|
||||||
|
used 'STM32 Discovery' development boards plugged into base boards
|
||||||
|
that held the ECU specific chips. That 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.
|
|
@ -1,16 +1,30 @@
|
||||||
# List of all the board related files.
|
# Combine the related files for a specific platform and MCU.
|
||||||
BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_F767ZI/board.c
|
|
||||||
BOARDSRC_CPP = $(PROJECT_DIR)/config/boards/microrusefi/board_configuration.cpp
|
|
||||||
|
|
||||||
# Required include directories
|
BOARDS_DIR = $(PROJECT_DIR)/config/boards
|
||||||
BOARDINC = $(PROJECT_DIR)/config/boards/nucleo_f767 $(PROJECT_DIR)/config/stm32f7ems
|
|
||||||
|
|
||||||
LDSCRIPT= $(PROJECT_DIR)/config/boards/nucleo_f767/STM32F76xxI.ld
|
# Target ECU board design
|
||||||
|
BOARDSRC_CPP = $(BOARDS_DIR)/microrusefi/board_configuration.cpp
|
||||||
|
|
||||||
|
# Target processor details
|
||||||
|
ifeq ($(PROJECT_CPU),ARCH_STM32F4)
|
||||||
|
MCU_DEFS = -DSTM32F407xx
|
||||||
|
BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY/board.c
|
||||||
|
BOARDINC = $(BOARDS_DIR)/microrusefi
|
||||||
|
BOARDINC += $(PROJECT_DIR)/config/stm32f4ems # For board.h
|
||||||
|
BOARDINC += $(BOARDS_DIR)/st_stm32f4
|
||||||
|
LDSCRIPT= $(BOARDS_DIR)/prometheus/STM32F405xG.ld
|
||||||
|
else
|
||||||
|
MCU_DEFS = -DSTM32F767xx
|
||||||
|
BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_F767ZI/board.c
|
||||||
|
BOARDINC = $(BOARDS_DIR)/nucleo_f767 # For board.h
|
||||||
|
BOARDINC += $(PROJECT_DIR)/config/stm32f7ems # efifeatures/halconf/chconf.h
|
||||||
|
LDSCRIPT= $(BOARDS_DIR)/nucleo_f767/STM32F76xxI.ld
|
||||||
|
endif
|
||||||
|
|
||||||
# Set this if you want a default engine type other than normal MRE
|
# Set this if you want a default engine type other than normal MRE
|
||||||
ifeq ($(DEFAULT_ENGINE_TYPE),)
|
ifeq ($(DEFAULT_ENGINE_TYPE),)
|
||||||
DEFAULT_ENGINE_TYPE = -DDEFAULT_ENGINE_TYPE=MICRO_RUS_EFI
|
DEFAULT_ENGINE_TYPE = -DDEFAULT_ENGINE_TYPE=MICRO_RUS_EFI
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Override DEFAULT_ENGINE_TYPE
|
# Add them all together
|
||||||
DDEFS += -DSTM32F767xx -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"microRusEfi\" $(DEFAULT_ENGINE_TYPE)
|
DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"microRusEfi\" $(DEFAULT_ENGINE_TYPE)
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
In TunerStudio or rusEfi console please use "Popular Vehicles" dialog to apply some of these presets.
|
This directory contains pre-defined configurations for popular engines.
|
||||||
|
|
||||||
|
These configurations are a convenience, not a limit. Most engine types
|
||||||
|
can be manually configured.
|
||||||
|
|
||||||
Please do not be afraid of the content of this folder. You would NOT need your own file to start your own engine.
|
In TunerStudio or rusEfi console use the "Popular Vehicles" dialog to
|
||||||
|
apply one of these presets.
|
||||||
|
|
||||||
See http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
|
See http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
|
||||||
|
|
||||||
This folder is also used by continutes integration testing suite.
|
This folder is also used by the continuous integration testing suite.
|
||||||
|
|
||||||
|
New configurations should follow the pattern of <make>_<model>.cpp for
|
||||||
|
consistency. A future change may rename these to <make>_<engine>.cpp
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
This directory contains the core calculations for engine operation.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,3 +4,49 @@
|
||||||
[Q&A on source code](https://rusefi.com/forum/viewtopic.php?f=5&t=10)
|
[Q&A on source code](https://rusefi.com/forum/viewtopic.php?f=5&t=10)
|
||||||
|
|
||||||
See also [../unit_tests](../unit_tests)
|
See also [../unit_tests](../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.
|
||||||
|
|
|
@ -1,3 +1,16 @@
|
||||||
|
This directory contains the initialization and configuration files for the
|
||||||
|
RusEFI interface to TunerStudio.
|
||||||
|
|
||||||
|
The primary contents are a set ```rusefi*.ini``` initialization files, used to
|
||||||
|
configure TunerStudio to setup and monitor a specific ECU board. These are
|
||||||
|
the only files a typical end user needs.
|
||||||
|
|
||||||
|
The ```translations``` directory contains non-English-language translations
|
||||||
|
for TunerStudio.
|
||||||
|
|
||||||
|
The initialization files are automatically generated from a combination
|
||||||
|
of input files located both in this directory and in the board-specific
|
||||||
|
directories .
|
||||||
|
|
||||||
```rusefi*.ini``` files are generated based on the following four inputs:
|
```rusefi*.ini``` files are generated based on the following four inputs:
|
||||||
1) ```rusefi_config.txt``` contains configuration region definition in proprietary text format.
|
1) ```rusefi_config.txt``` contains configuration region definition in proprietary text format.
|
||||||
|
@ -7,5 +20,5 @@ line - here you will see all top level menus defined with internal IDs and visib
|
||||||
4) ```prepend.txt``` is a minor detail which allows you to hide elements of the UI using ```@@if_XXX``` syntax.
|
4) ```prepend.txt``` is a minor detail which allows you to hide elements of the UI using ```@@if_XXX``` syntax.
|
||||||
|
|
||||||
|
|
||||||
rusefi.ini file is generated by ConfigDefinition.jar tool.
|
The combined file is generated by ConfigDefinition.jar tool.
|
||||||
On Windows you simply invoke ```gen_config.bat```
|
On Windows this may be run with ```gen_config.bat```.
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
; this is TunerStudio project for www.rusefi.com DIY engine management system
|
; This is a TunerStudio project for the RusEFI.com engine management system
|
||||||
;
|
|
||||||
; rusefi.ini is generated by invoking gen_config.bat (look inside for the exact command to run it outside of Windows)
|
|
||||||
; inputs are rusefi.input template and rusefi_config.txt file
|
|
||||||
;
|
;
|
||||||
|
; This file has been generated by invoking gen_config.bat.
|
||||||
|
; The input files are
|
||||||
|
; rusefi.input the common template
|
||||||
|
; rusefi_config.txt the project specific file
|
||||||
;
|
;
|
||||||
; In TunerStudio some fields have little question mark on the left of the name for additional field tips.
|
; In TunerStudio some fields have little question mark on the left of the name for additional field tips.
|
||||||
; Those tips are defined in ../integraion/rusefi_config.txt file for example
|
; Those tips are defined in ../integraion/rusefi_config.txt
|
||||||
|
;
|
||||||
|
; For example
|
||||||
;
|
;
|
||||||
; float bias_resistor;+Pull-up resistor value on your board;"Ohm"
|
; float bias_resistor;+Pull-up resistor value on your board;"Ohm"
|
||||||
; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip
|
; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip
|
||||||
|
|
Loading…
Reference in New Issue