IAR, AVR, hex file, multiple address spaces (Errror e133)

Gast #431565
Lesenswert?
• ▲
▼
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
Gast #433186
Lesenswert?
• ▲
▼
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
Gast #433191
Lesenswert?
• ▲
▼
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
Gast #433678
Lesenswert?
• ▲
▼
__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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren