Kann man ein EEPROM array in ein SRAM array casten?
Bsp.
ich habe eine Funktion:
unsigned char cp(unsigned char* array1,unsigned char* array1){}
nun möchte ich mit dieser Funktion Daten aus dem EEPROM vergleichen mit
Daten aus dem SRAM.
also:
Natürlich ist das falsch:
unsigned char cp(unsigned char* array1,unsigned char* array1){}
und so ist es Richtig:
unsigned char cp(unsigned char* array1,unsigned char* array2){}
Jürgen schrieb:
> Kann man ein EEPROM array in ein SRAM array casten?
Können tust du schon, der Compiler kann sich gegen einen Cast nicht
wehren. Ein Cast ist schlieslich das ultimate Mittel eines
C-Programmierers, wie er dem Compiler so ziemlich alles unterjubeln
kann.
Aber richtig ist es nicht.
Und das liegt daran, dass man auf Daten im EEPROM anders zugreifen muss,
als auf Daten im SRAM.
Du hast 2 Möglichkeiten:
* entweder du schreibst dir selbst eine spezielle cp-Funktion, die weiß,
dass zb. der 2-te Parameter ein Pointer auf Daten im EEPROM ist, und
das entsprechend berücksichtigt
* oder du zerteilst die Operation in 2 Schritte
a) die Daten aus dem EEPROM in ein Hilfsarray im SRAM lasen
b) damit hast du dann die zu vergleichenden Daten beide im SRAM
vorliegen und kannst deine ursprüngliche cp-Funktion benutzen.
>Und das liegt daran, dass man auf Daten im EEPROM anders zugreifen muss,
als auf Daten im SRAM.
ok, hab ich mir fast gedacht, aber gewust hab ich es nicht.
Danke!
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.