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.
|
||||
BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_F767ZI/board.c
|
||||
BOARDSRC_CPP = $(PROJECT_DIR)/config/boards/microrusefi/board_configuration.cpp
|
||||
# Combine the related files for a specific platform and MCU.
|
||||
|
||||
# Required include directories
|
||||
BOARDINC = $(PROJECT_DIR)/config/boards/nucleo_f767 $(PROJECT_DIR)/config/stm32f7ems
|
||||
BOARDS_DIR = $(PROJECT_DIR)/config/boards
|
||||
|
||||
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
|
||||
ifeq ($(DEFAULT_ENGINE_TYPE),)
|
||||
DEFAULT_ENGINE_TYPE = -DDEFAULT_ENGINE_TYPE=MICRO_RUS_EFI
|
||||
endif
|
||||
|
||||
# Override DEFAULT_ENGINE_TYPE
|
||||
DDEFS += -DSTM32F767xx -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"microRusEfi\" $(DEFAULT_ENGINE_TYPE)
|
||||
# Add them all together
|
||||
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
|
||||
|
||||
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)
|
||||
|
||||
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:
|
||||
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.
|
||||
|
||||
|
||||
rusefi.ini file is generated by ConfigDefinition.jar tool.
|
||||
On Windows you simply invoke ```gen_config.bat```
|
||||
The combined file is generated by ConfigDefinition.jar tool.
|
||||
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
|
||||
;
|
||||
; 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 is a TunerStudio project for the RusEFI.com engine management system
|
||||
;
|
||||
; 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.
|
||||
; 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"
|
||||
; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip
|
||||
|
|
Loading…
Reference in New Issue