Forum: Mikrocontroller und Digitale Elektronik IAR, AVR, hex file, multiple address spaces (Errror e133)


von Philipp (Gast)


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

von Philipp (Gast)


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

von Michael Wilhelm (Gast)


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

von Philipp (Gast)


Lesenswert?

@MW

Hat leider nicht funktioniert :( Wie Deklarierst Du den Variablen im 
FLASH? Zufällig auch schon mal beides in einem Projekt verwendet?

Philipp

von Michael Wilhelm (Gast)


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

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.