Browse Source

Remove eeprom _int8t functions

flash: -48B
RAM: -4B
Alex Voinea 2 years ago
parent
commit
dcc48c0052
3 changed files with 19 additions and 32 deletions
  1. 10 8
      Firmware/Marlin_main.cpp
  2. 9 13
      Firmware/ultralcd.cpp
  3. 0 11
      Firmware/util.h

+ 10 - 8
Firmware/Marlin_main.cpp

@@ -3090,16 +3090,18 @@ static void gcode_G80()
 #endif // SUPPORT_VERBOSITY
 
     for (uint8_t i = 0; i < 4; ++i) {
-        unsigned char codes[4] = { 'L', 'R', 'F', 'B' };
+        static const char codes[4] PROGMEM = { 'L', 'R', 'F', 'B' };
+        static uint8_t *const eep_addresses[4] PROGMEM = {
+          (uint8_t*)EEPROM_BED_CORRECTION_LEFT,
+          (uint8_t*)EEPROM_BED_CORRECTION_RIGHT,
+          (uint8_t*)EEPROM_BED_CORRECTION_FRONT,
+          (uint8_t*)EEPROM_BED_CORRECTION_REAR,
+        };
         long correction = 0;
-        if (code_seen(codes[i]))
+        if (code_seen(pgm_read_byte(&codes[i])))
             correction = code_value_long();
-        else if (eeprom_bed_correction_valid) {
-            unsigned char *addr = (i < 2) ?
-                                  ((i == 0) ? (unsigned char*)EEPROM_BED_CORRECTION_LEFT : (unsigned char*)EEPROM_BED_CORRECTION_RIGHT) :
-                                  ((i == 2) ? (unsigned char*)EEPROM_BED_CORRECTION_FRONT : (unsigned char*)EEPROM_BED_CORRECTION_REAR);
-            correction = eeprom_read_int8(addr);
-        }
+        else if (eeprom_bed_correction_valid)
+            correction = (int8_t)eeprom_read_byte((uint8_t*)pgm_read_ptr(&eep_addresses[i]));
         if (correction == 0)
             continue;
 

+ 9 - 13
Firmware/ultralcd.cpp

@@ -2698,27 +2698,23 @@ void lcd_adjust_bed(void)
     if (_md->status == 0)
 	{
         // Menu was entered.
-		_md->left  = 0;
-		_md->right = 0;
-		_md->front = 0;
-		_md->rear  = 0;
         if (eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1)
 		{
-			_md->left  = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT);
-			_md->right = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT);
-			_md->front = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT);
-			_md->rear  = eeprom_read_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR);
+			_md->left = (int8_t)eeprom_read_byte((uint8_t*)EEPROM_BED_CORRECTION_LEFT);
+			_md->right = (int8_t)eeprom_read_byte((uint8_t*)EEPROM_BED_CORRECTION_RIGHT);
+			_md->front = (int8_t)eeprom_read_byte((uint8_t*)EEPROM_BED_CORRECTION_FRONT);
+			_md->rear = (int8_t)eeprom_read_byte((uint8_t*)EEPROM_BED_CORRECTION_REAR);
 		}
         _md->status = 1;
     }
     MENU_BEGIN();
 	// leaving menu - this condition must be immediately before MENU_ITEM_BACK_P
     ON_MENU_LEAVE(
-        eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_LEFT,  _md->left);
-        eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, _md->right);
-        eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_FRONT, _md->front);
-        eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR,  _md->rear);
-        eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
+        eeprom_update_byte((uint8_t*)EEPROM_BED_CORRECTION_LEFT, (uint8_t)_md->left);
+        eeprom_update_byte((uint8_t*)EEPROM_BED_CORRECTION_FRONT, (uint8_t)_md->front);
+        eeprom_update_byte((uint8_t*)EEPROM_BED_CORRECTION_REAR, (uint8_t)_md->rear);
+        eeprom_update_byte((uint8_t*)EEPROM_BED_CORRECTION_RIGHT, (uint8_t)_md->right);
+        eeprom_update_byte((uint8_t*)EEPROM_BED_CORRECTION_VALID, 1);
     );
     MENU_ITEM_BACK_P(_T(MSG_BACK));
 	MENU_ITEM_EDIT_int3_P(_i("Left side [\xe4m]"),  &_md->left,  -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX);////MSG_BED_CORRECTION_LEFT c=14

+ 0 - 11
Firmware/util.h

@@ -23,17 +23,6 @@ extern bool force_selftest_if_fw_version();
 extern void update_current_firmware_version_to_eeprom();
 
 
-
-inline int8_t eeprom_read_int8(unsigned char* addr) {
-	uint8_t v = eeprom_read_byte(addr);
-	return *reinterpret_cast<int8_t*>(&v);
-}
-
-inline void eeprom_update_int8(unsigned char* addr, int8_t v) {
-	eeprom_update_byte(addr, *reinterpret_cast<uint8_t*>(&v));
-}
-
-
 //-//
 #define EEPROM_NOZZLE_DIAMETER_uM_DEFAULT 400