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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.