Don't make EEPROM size assumptions with dynamic keymaps. (#16054)
* Don't make EEPROM size assumptions with dynamic keymaps. * Add support for checking against emulated flash, error out if someone attempts to build a board without specifying EEPROM size. * Reorder defines so that MCU is considered last. * Refactor EEPROM definitions for simplicity. * Fix max sizing of kabedon/kabedon980. * Fix max sizing of mechlovin/olly/jf. * Fix unit tests. * Review comments, add messages with values during build failures.fix_template_bootmagic
parent
da5cb5fd6f
commit
e22efc037a
@ -0,0 +1,8 @@ |
||||
// Copyright 2022 Nick Brassel (@tzarc)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once |
||||
|
||||
#ifndef EEPROM_SIZE |
||||
# include "eeconfig.h" |
||||
# define EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO
|
||||
#endif |
@ -0,0 +1,22 @@ |
||||
// Copyright 2022 Nick Brassel (@tzarc)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once |
||||
|
||||
#if defined(K20x) |
||||
/* Teensy 3.0, 3.1, 3.2; mchck; infinity keyboard */ |
||||
// The EEPROM is really RAM with a hardware-based backup system to
|
||||
// flash memory. Selecting a smaller size EEPROM allows more wear
|
||||
// leveling, for higher write endurance. If you edit this file,
|
||||
// set this to the smallest size your application can use. Also,
|
||||
// due to Freescale's implementation, writing 16 or 32 bit words
|
||||
// (aligned to 2 or 4 byte boundaries) has twice the endurance
|
||||
// compared to writing 8 bit bytes.
|
||||
//
|
||||
# ifndef EEPROM_SIZE |
||||
# define EEPROM_SIZE 32 |
||||
# endif |
||||
#elif defined(KL2x) /* Teensy LC (emulated) */ |
||||
# define EEPROM_SIZE 128 |
||||
#else |
||||
# error Unsupported Teensy EEPROM. |
||||
#endif |
@ -0,0 +1,8 @@ |
||||
// Copyright 2018-2022 Nick Brassel (@tzarc)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once |
||||
|
||||
#include "flash_stm32.h" |
||||
#include "eeprom_stm32.h" |
||||
|
||||
#define EEPROM_SIZE (FEE_PAGE_SIZE * FEE_PAGE_COUNT / 2) |
Loading…
Reference in new issue