Forum: Compiler & IDEs octopus_eeprom_write_bytes / octopus_eeprom_read_bytes


von Hans-Ruedi P. (hpfandler)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.