* EEPROM_MAX_WRITE_BLOCK can be local to writeConfig()
This saves a byte of memory ;-)
* Fix MISRA/lint warnings
Correctly cast address parameter of eeprom_read_block
Statically access table 3d type_key member
* Remove force burn code - unused
* Replace eepromWritesPending with bit set/check
* Refactor: chain write_location instances.
Clearer code.
* First try on updating closedloop boost control
* added eeprom updates for backward comp[atibility
* fix merge conflict
* Change updates to next release EEPROM version.
* Fix some issues after merging master
* some cleanup to minimize changes and speedup review
* cleanup updates
* chances on updates to alaign with new table format
* move LUT to new config page in eeprom
* little cleanup
* Update storage.h comments
* fix some ini warnings
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
The tableCrcCommand is used by TS to determine what calibrations (IAT, CLT and O2) are currently on the board. This is an optional command, however v3.1.07 unintentionally assumed it was implemented on all boards and gave a 'null' error if the command was not present.
This adds the command for all future versions, but previous releases will need to wait for theTS fix release
* refactor: use a loop for writeAllConfig.
Future proofing: new pages will get automatically
written
* Call existing [read|store]EEPROMVersion functions
* Common function to compute CRC address
* Bulk write calibration tables
* Use EEPROM get/put instead of hand rolled code
* Typedef the EEPROM address
I.e. the EEPROM.read() parameter type
* Encapsulate eepromWritesPending
* Remove C++ namespaces
* Use table iterators for read/write
* Rename storage.ino to .cpp
This fixes a warning
* fix!: fix ODR violations
* refactor: move page specific code into a separate CPP file
* refactor: page getter/setter share mapping logic
Extract common page-to-entity mapping logic from
getPageValue() & setPageValue() - place in map_page_offset_to_entity()
and share.
* performance: optimize CRC calc
Calculate page CRC by iterating over entities & tables.
* CRC table calculation - use table iterator
* refactor: use iterators for sendPage()
Re-implement sendPage() using page & table iterators
Future proof & fast
* refactor: sendPageASCII()
Pull put shared code into functions.
Use table iterator
* refactor: use shared axis factor
This puts the axis factor usage in one place
* refactor: encapsulate page size & count
Added getPageCount() & getPageSize()
* Added static_assert for all pages.
* Remove C++ language elements
namesapces, scope resolution, enum struct
* Rename comms.ino to comms.cpp
Provides better encapsulation of non-global
data & functions.
INO files are all mashed together by some
custom process. So everything becomes global and
static functions/variables aren't really private to
the translation unit. Thus breaking encapsulation :-(
* Programmable outputs
* Prevent array overflow
* Show fullStatus variables names on dialog
* Further fixes
* Update with master
Co-authored-by: Josh Stewart <josh@noisymime.org>
* Added new Flash EEPROM emulation
# Conflicts:
# platformio.ini
# speeduino/board_stm32_official.ino
# speeduino/init.ino
# speeduino/src/SPIAsEEPROM/SPIAsEEPROM.cpp
# speeduino/src/SPIAsEEPROM/SPIAsEEPROM.h
* changes to storage to make SPI flash work again
* cleanup