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.
This commit is contained in:
		
							parent
							
								
									da5cb5fd6f
								
							
						
					
					
						commit
						e22efc037a
					
				
					 17 changed files with 185 additions and 153 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#include <ch.h>
 | 
			
		||||
#include <hal.h>
 | 
			
		||||
 | 
			
		||||
#include "eeprom_teensy.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
 | 
			
		||||
/*************************************/
 | 
			
		||||
| 
						 | 
				
			
			@ -42,18 +43,6 @@
 | 
			
		|||
#if defined(K20x) /* chip selection */
 | 
			
		||||
/* 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
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    ^^^ Here be dragons:
 | 
			
		||||
        NXP AppNote AN4282 section 3.1 states that partitioning must only be done once.
 | 
			
		||||
| 
						 | 
				
			
			@ -350,8 +339,6 @@ void do_flash_cmd(volatile uint8_t *fstat)
 | 
			
		|||
extern uint32_t __eeprom_workarea_start__;
 | 
			
		||||
extern uint32_t __eeprom_workarea_end__;
 | 
			
		||||
 | 
			
		||||
#    define EEPROM_SIZE 128
 | 
			
		||||
 | 
			
		||||
static uint32_t flashend = 0;
 | 
			
		||||
 | 
			
		||||
void eeprom_initialize(void) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue