Hallo zusammen Kann mir jemand erklären, wie ich es schaffe dass beim Compilieren Werte ins eep file geschriben werden und wie ich diese angeben kann? mfg Marc Honegger
Danke für den Link, habe mir den Abschnitt durchgelesen, aber ich glaube, ich habe noch nicht alles verstanden. Ich habe ein Datei mit Bilddaten, die ich beim Einschalten auf einem glcd ausgeben möchte. Da die Daten nicht im Intel-Hexformat vorliegen, sondern nur rein als Rohdaten (schon ans Display angepasst), weiß ich jetzt keinen Weg, wie ich das in meinen Quellcode einbauen kann. Wie sage ich dem Compiler, dass er aus der Datei "meinbild.dat" die Bytes in den EEPROM schreiben soll?
1 | uint8_t i; |
2 | uint8_t eepromstring[512] EEMEM; |
3 | LcdBuffer = (uint8_t *) 0x60; |
4 | |
5 | for(i=0;i<8;i++) |
6 | {
|
7 | //LcdBuffer sind 64Bytes im RAM
|
8 | //eepromstring[512] soll das Aray im EEPROM sein, wo die Bilddaten liegen
|
9 | eeprom_read_block ((void *)&LcdBuffer, (const void *)&eepromstring[i*64],64); |
10 | glcdWriteData(StartAddress, 64,LcdBuffer ); |
11 | }
|
Gruß, naicheben
Wenn du folgendes in deinem Programm schreibst:
1 | uint8_t eepromstring[512] EEMEM = {0x12, 0x34, 0x56, ...}; // 512 byte daten |
dann erzeugt die AVR-toolchain aus den Daten ein eigenes (hex-)File, welches dann vom Programmiertool ins EEPROM geschrieben wird. Der "Compiler" kann das nur über eeprom_write(); Je nachdem, in welchem Format meinbild.dat vorliegt, ist es eventuell sinnvoller, die direkt ins Hex-Format zu wandeln, und so ins EEPROM zu brennen. Oliver
OliverSo wrote: > Je nachdem, in welchem Format meinbild.dat vorliegt, ist es eventuell > sinnvoller, die direkt ins Hex-Format zu wandeln, und so ins EEPROM zu > brennen. Oder es gleich im Binärformat in den EEPROM zu nageln. Beherrscht AVRDUDE ja auch (Format-Angabe "r" für "raw" am Ende, wird aber normalerweise auch automatisch erkannt).
Mit dem raw meinst Du das so? :
1 | #---------------- Programming Options (avrdude) ----------------
|
2 | ...
|
3 | AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex |
4 | #AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
|
5 | AVRDUDE_WRITE_EEPROM = -U eeprom:w:Meinbild.dat:r |
Ok, ich glaub ich habs jetzt. Ich muss leider den Pfad mit angeben: AVRDUDE_WRITE_EEPROM = -U eeprom:w:"c:\avrctl\Meinbild.dat":r Danke für den Tip!
zum HEX und EEPs schreiben nehm ich immer das hier: http://myavr.de/download.php?suchwort=DL112 gruß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.