octopus_eeprom_write_bytes / octopus_eeprom_read_bytes

OP #1427247
Lesenswert?
• ▲
▼
Hallo Leute

Ich versuche ein programm mit den beiden Funktionen der octopus lib
octopus_eeprom_write_bytes / octopus_eeprom_read_bytes zum laufen zu
bringen.

Dazu verwende ich den folgenden code teil (OctopusCAN / AT90CAN128):
Unter LINUX als Dev-System (Eclipse/gcc mit make). Extrakt gemäss
den Beispielen aus Zweig 'test'. Beispiel auf minimum reduziert.

a) Initialisieren des Datenblockes
----------------------------------
  for(i = 0; i < 4096; i++)
  {
    buffer[i] = 0;
  }

  for(i = 0; i < 256; i++)
  {
    buffer[(i*16)] = (char)i;
  }

  printf ("*** dump EEPROM (wr) data content\n");
  hex_dump(&buffer[0x0000], 4096);

*** Die kontrolle zeigt dass jeweils die erste Zelle eines jeden 16-er 
blocks den entsprechenden Wert beinhaltet.

b) transfer des gesamten Datenblockes in das EEPROM
---------------------------------------------------
  // write SINGLE byte
  for (i = 0; i < 256; i++)
  {
    adrcntr = (i*16);
    if (octopus_eeprom_write_bytes(&octopus, adrcntr, buffer, 1) != 1)
    {
      printf ("*** error in writing EEPROM\n");
    }
  }

*** Geht durch ohne Fehlermeldung

c) Erneutes Auslesen und Kontrolle
----------------------------------
  // clear buffer
  for(i = 0; i < buflen; i++)
  {
    buffer[i] = fillbyte;
  }
  // read SINGLE bytewyse from octopus
  for (i = 0; i < 256; i++)
  {
    adrcntr = 0x0000 + (i * 16);
    for (j = 0; j < 16; j++)
    {
      octopus_eeprom_read_bytes(&octopus, (adrcntr + j), buffer, 1);
    }
  }
  printf ("*** dump EEPROM (rd) data content\n");
  hex_dump(&buffer[0x0000], 4096);

*** Die Kontrolle des Hexdumps zeigt, dass nur die letzten 256 bytes
repetitiv über den ganzen Speicherbereich gelesen werden. d.h.
anscheinend werden nur die 256 bytes verwendet und der rest wurde
ignoriert, überschrieben oder schlicht vergessen.

Kann mir vielleicht jemand einen Tip geben ?

Danke und Gruss
Hans-Ruedi

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.