Hallo, hab da ein Problem und komme irgendwie nicht weiter. Suche bei Google und hier im Forum hat leider auch nichts ergeben. Hab ein Programm geschrieben das auch variable im EEPROM und konstanten im FLASH abspeichert. Das ganze läuft auch so weit. Hab das während der Entwicklungsphase zu Debuggen immer per JATAG in einen ATMega32 gespielt und da debuggt. Jetzt da alles läuft wollte ich das ganze in einen ATMega8 packen da der 32er für das kleine Programm eigentlich viel zu groß ist(zugegeben der 8er auch noch). Da der 8er aber keine JTAG Schnittstelle hat wollte ich einfach ein hexfile erzeugen und das dann mit dem AVR Studio per ISP in den ATMega8 laden. Nur leider bekomme ich beim kompilieren folgende Fehlermeldung: Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted Hat jemand eine Ahnung welches Format ich nehmen muss damit es geht? bzw welche Einstellungen ich ändern muss? Hab schon versuchsweise ein paar andere Formate versucht, natürlich ohne Erfolg. Oder liegt es an der art und weise wie ich das EEPROM/FLASH anspreche? Denke eigentlich nicht, weil auf dem 32er lief das Programm ja auch bestens :) Hänge hier sicherheitshalber noch mal meine Deklaration an. FLASH: static const BYTE __tinyflash arrayflash[][SIZE] = {{"String1"}, {"String2"}, }; EEPROM: typedef struct { BYTE device[CMD_NAME_LENGTH]; BYTE (*realize)(BYTE* parameter); }__eeprom DATEN; const DATEN __eeprom cmd[NUMBERCMDS]={{"function1", func1}, {"Funktion2", func2}, }; Wobei der EEPROM Teil global definert ist. Vielen Dank schon mal Philipp
Hab jetzt mal die meisten der Ausgabeformate durchprobiert, alle mit der gleichen Fehlermeldung :( Hat jemand eine Idee wo ich was über die Formatvarianten die in der Fehlermeldung erwähnt werden finde? Google war da leider nicht sehr hilfreich :( Philipp
Probiere mal Intel standard. Meine EEPROM Deklaration sieht so aus: __no_init __eeprom struct { unsigned int einschaltzaehler; unsigned int betriebsminuten[100]; unsigned char adresse; } eeprom_daten; MW
@MW Hat leider nicht funktioniert :( Wie Deklarierst Du den Variablen im FLASH? Zufällig auch schon mal beides in einem Projekt verwendet? Philipp
__flash unsigned char dimmer_tab[40] = {120,95,90,85,80,75,70,65,60,55, 50,45,40,38,36,34,32,30,28,25, 20,19,18,17,16,15,14,13,12,11, 10,9,8,7,6,5,4,3,3,3}; Das ist eine bei mir übliche Deklaration. Und ja, ich habe beides des öfteren im gleichen Programm laufen. Version 2.27B/Win das ist die Workbench-Version. MW
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.