8051 IAR C/C++

OP #1461146
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
OP
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....
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
Gast
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
OP
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....
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.