Marlin 2.0 + RADDS 1.5 = Eeprom Error 02. February 2019 16:47 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 03. February 2019 02:34 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 03. February 2019 11:40 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 05. February 2019 11:23 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 05. February 2019 13:20 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
#if ENABLED(DEBUG_EEPROM_READWRITE) #define _FIELD_TEST(FIELD) \ EEPROM_ASSERT( \ eeprom_error || eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET, \ "Field " STRINGIFY(FIELD) " mismatch." \ ) #else #define _FIELD_TEST(FIELD) NOOP #endifHerzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 05. February 2019 16:06 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 06. February 2019 06:40 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
#if ENABLED(DEBUG_EEPROM_READWRITE) #define _FIELD_TEST(FIELD) \ EEPROM_ASSERT( \ (!eeprom_error) && (eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET), \ "Field " STRINGIFY(FIELD) " mismatch." \ ) #else #define _FIELD_TEST(FIELD) NOOP #endifHerzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 06. February 2019 13:51 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 06. February 2019 15:09 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 06. February 2019 15:37 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 07. February 2019 06:22 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 07. February 2019 18:25 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 08. February 2019 16:11 |
Registrierungsdatum: 12 Jahre zuvor Beiträge: 2.469 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 07:39 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 07:43 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Quote
hansilein
Ich habe schon so einiges probiert... Alle möglichen Lösungsvorschläge von vergleichbaren oder ähnlichen Problemen:
Repetier flashen, M502 + M500 ausführen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
Marlin4Due mit manipulierter Eeprom-Version ("V64", wie Marlin2.0) flashen, M502 + M500 ausführen. Marlin 2.0 flashen, M502 + M500 ausführen. Keine Besserung.
Spezielles Arduino-Sketch flashen, I2C-Eeprom-Chip vollständig löschen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
Minimal-Konfiguration (nur Board-Config + Eeprom Aktivierung) von Marlin 2.0 flashen, um eventuelle Konfiguerationsfehler ausschließen zu können. Keine Besserung.
So langsam weiß ich nicht mehr weiter... Ich habe auch schon eine Fehlermeldung im Github-Repo von Marlin 2.0 platziert... Mal schauen, was sich dort ergibt.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 08:25 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 08:40 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 10:47 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
// EEPROM has only ~100,000 write cycles,
// so only write bytes that have changed!
if (v != eeprom_read_byte(p)) {
eeprom_write_byte(p, v);
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 09. February 2019 11:01 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 10. February 2019 05:12 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
echo:V64 stored settings retrieved (591 bytes; crc 34250)und teste dann mit M501, was tatsächlich im Eeprom steht.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 10. February 2019 07:24 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 11. February 2019 11:24 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 12. February 2019 12:14 |
Registrierungsdatum: 12 Jahre zuvor Beiträge: 2.469 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 13. February 2019 04:38 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 14. February 2019 07:10 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
static bool read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing=true);Deklaration in persistent_store_eeprom.cpp Zeile 67
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
do {
uint8_t c = eeprom_read_byte((uint8_t*)pos);
if (writing) *value = c;
...
Das Lesen ist so abhängig von validating in configuration_store.cpp. Ich würde mal testweise die Auskommentierung entfernen.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 14. February 2019 17:24 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing = true)
if (writing) *value = c;.... nach...
if (true) *value = c;
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 15. February 2019 12:42 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 15. February 2019 12:50 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 15. February 2019 14:02 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Vorschlag (ohne Gewähr auf Funktion)Quote
Wikipedia
Statische Inhalte einer Klasse sind im gleichen Ausführungsobjekt
in allen Instanzen dieser Klasse gleich.
auch verfügbar, wenn keine Instanz der Klasse existiert.
Eine statische Methode wird mit dem Speicherklassenschlüsselwort static deklariert.
Dies gilt auch für statische Mitgliedsmethoden.
Im aktuellen Abschnitt ist mit statische Methode immer eine statische Mitglieds-Methode einer Klasse gemeint.
Statische Methoden können auf statische Mitglieder der Klasse, in der sie deklariert werden, zugreifen. Nicht-statische Inhalte dürfen nicht von der Methode aus verwendet werden, da die Methode auch ohne eine Instanz gültig ist. Auch wenn ein Objekt verwendet wird und über das Objekt die statische Methode aufgerufen wird, wird der statische Programmcode verwendet.
#include "../../core/serial.h" ... void eeprom_write_byte(uint8_t *pos, unsigned char value) { unsigned eeprom_address = (unsigned) pos; uint8_t res; eeprom_init(); Wire.beginTransmission(eeprom_device_address); Wire.write((int)(eeprom_address >> 8)); // MSB Wire.write((int)(eeprom_address & 0xFF)); // LSB Wire.write(value); res = Wire.endTransmission(); // wait for write cycle to complete // this could be done more efficiently with "acknowledge polling" delay(5); if (res != 0) { SERIAL_ECHOLNPAIR("Wire ", res); SERIAL_ECHOLNPAIR("Pos ", (uint8_t*)pos); } }Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error 16. February 2019 16:52 |
Registrierungsdatum: 13 Jahre zuvor Beiträge: 256 |