mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051 IAR C/C++


Autor: Emil Gracic (emil_kruki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute
Ich hab ein Problem mit dem IAR, nähmlich ich bearbeite ein sehr 
komplexes C++ Programm, und wenn ich Debug Session starte mit den 
folgenden Einstellungen:
Options->General Options->Target->CPU Core : Plain
                                ->Code Model : plain
                                ->Date Model : small
funktioniert alles schön, aber wenn ich Debug Session mit folgenden 
EInstellungen starte, dann findet der Compiler die Main Methode nicht, 
sondern läuft ganze Zeit rum....
Options->General Options->Target->CPU Core : extended1
                                ->Code Model : far
                                ->Date Model : small


Weisst jemand vielleicht woran es liegt, und wie man dieses Problem 
lösen könnte?
Gruß
Emil

: Verschoben durch Moderator
Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn ich Debug Session mit folgenden
> EInstellungen starte
> dann findet der Compiler die Main Methode nicht,
> sondern läuft ganze Zeit rum....

Was hat der Compiler mit dem Starten einer Debug-Session zu tun?

Was mag "läuft die ganze Zeit rum" bedeuten?

Autor: Emil Gracic (emil_kruki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Debug Session sieht man was das Programm eigentlich macht, und die 
Arbeitsweise des Programms interpretiert Compiler....Bei den ersten 
Einstellungen sieht man wo der Einsprungsspunkt des Programms ist, 
nähmlich wo und wie die Main Methode aufgerufen wird, bei den zweiten 
Einstellungen sieht man das nicht....

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und die Arbeitsweise des Programms interpretiert Compiler

Nö, das ist ein Debugger.

Autor: Emil Gracic (emil_kruki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, es ist ein Debugger...
Wieso findet er die Mainmethode bei der zweiten Einstellungsvariante 
nicht?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil sich möglicherweise Dein Projekt mit den aufgeführten Einstellungen 
gar nicht übersetzen lässt? Weil es irgendwelche Fehlermeldungen gibt, 
die Du nicht beschreibst? Du bist Dir im Klaren darüber, daß ein 8051 
alles andere als eine für "sehr komplexe C++-Programme" geeignete 
Hardware ist?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Emil Gracic schrieb:
> Options->General Options->Target->CPU Core : extended1
>                                 ->Code Model : far
>                                 ->Date Model : small

Du weißt als, daß Dein unbekannter 8051 vom Typ extended1 ist und Dein 
Board eine far Adressierung hat?

Oder entspricht Dein Post eher: "Ich hab an meinem Auto wahllos ein paar 
Kabel vertauscht und einige Teile abmoniert und nun fährts nicht mehr"?


Peter

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht hilft es ja schon einfach mal in der Hilfe nachzuschauen
was extented1 bedeutet....
Auserdem kann die niemand helfen wenn du nicht angibst welche CPU
du nimmst.

Thomas

Autor: Emil Gracic (emil_kruki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn Ihr immer nur die arroganten Antworten zum Angebot habt, dann 
solltet Ihr nicht antworten....Beim Debug Session kann man auch 
Simulator nutzen und nicht unbedingt auf Hardware zugreifen, ist aber 
egal....Obwohl Deine Kritik sehr kreativ war, kann ich Dir leider nicht 
zustimmen....

Autor: Emil Gracic (emil_kruki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas: erstmal danke für die nette Antwort :)*
extended1 bedeutet, dass man noch zusätzliche 16 MBytes der externen 
Data Memory und Code Memory zur Verfügung hat....also geiegnet für 
grossere Programme....

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn Ihr immer nur die arroganten Antworten zum Angebot habt, dann
> solltet Ihr nicht antworten

Ach, es sind arrogante Antworten, wenn bei Deiner Fragestellung 
Zweifel ob des grundlegenden Verständnisses und der Informationsdichte 
aufkommen?

Ja, solchen Zeitgenossen hilft man gerne.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Emil Gracic schrieb:
> extended1 bedeutet, dass man noch zusätzliche 16 MBytes der externen
> Data Memory und Code Memory zur Verfügung hat

Da irrst Du.
Es teilt dem Compiler nur mit, daß der ausgewählte 8051-Typ das 
unterstützt und er entsprechenden Code erzeugen darf. Bei einigen 8051 
sind das Befehle, die mit 0xA5 anfangen.

Und dann guckt aber der Simulator schön blöd aus der Wäsche, wenn er 
Code ausführen soll, den Dein 8051 garnicht kann.

Deshalb sollte man von den Einstellungen, die der Compiler automatisch 
entsprechend dem ausgewählten 8051 vornimmt, die Finger lassen.

In der Regel weiß das der Compiler nämlich besser als Du.


Peter

Autor: emil_kruki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank Peter.
Das Problem war, dass die vom Compiler automatisch vorgenommene 
Einstellungen mit CPU Core : plain etc... waren. Mit plain funktioniert 
nicht das ganze Programm, da  nicht genug Speicherplatz zur Verfügung 
steht, also nach paar Methoden bricht mein Debug Session ab...Deswegen 
hab ich versucht mit extended1 das Problem zu lösen. Und im Buch von IAR 
Compiler steht, dass man mit extended1 zusätzliche 16 Mbytes externer 
Data Memory und Code Memory bekommt...Aber auf jeden Fall danke.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einen 8051-Typ, der mehr Speicher hat.
Z.B. der AT89C51RE2 hat 128kB Flash. Aber nicht über erweiterte Befehle, 
sondern über Banking.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.