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 User
> 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?
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....
> und die Arbeitsweise des Programms interpretiert Compiler
Nö, das ist ein Debugger.
Ok, es ist ein Debugger... Wieso findet er die Mainmethode bei der zweiten Einstellungsvariante nicht?
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?
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
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
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....
@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....
> 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.
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
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.
Nimm einen 8051-Typ, der mehr Speicher hat. Z.B. der AT89C51RE2 hat 128kB Flash. Aber nicht über erweiterte Befehle, sondern über Banking. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.