Hallo, nur mal eine allgemeine Frage: Ich habe ein paar floats, die ich gerne in AVR Studio debuggen möchte. Normalerweise reicht es doch aus die Variable in der Deklaration kurz volatile zu setzen. Nur bringt das bei mir nichts. Beim Anspringen heißt es im Watch Window trotzdem noch "Location not valid". Codeoptimierung ist an (-Os). Gibt es eine Möglichkeit ohne Schauen in die Register (stelle ich mir bei floats kompliziert vor) und ohne die Codeoptimierung auszuschalten (Code wäre dann viel zu groß) die Sache zu debuggen? Gruß Bernhard
Also ehrlich Leute. Ihr habt 7 Minuten Zeit gehabt die Geduld des Fragestellers zu erschöpfen und das reicht Euch noch nicht? Tststs. Seid Ihr anspruchsvoll.
Sch... Habe mich verguckt. Waren 17 Minuten. Das sollte jetzt aber wirklich reichen um Eure dunklen Leidenschaften zu befriedigen, oder?
Bernhard N. schrieb: > Keiner ne Idee? Poste ein abgespecktes Programm, welches das Problem zeigt und versetz uns in die Lage, mit dem Problem hier bei uns lokal zu arbeiten. Denn wie du so schön sagst: Eigentlich sollte ein volatile ausreichen, damit der Compiler/LInker keinerlei Optimierung auf der Variablen macht.
Hehe, ja ich war ein wenig ungeduldig. Aber hier verschwinden ja die Sachen so schnell auf Seite 2. Ansonsten: Diese Zeile reicht schon vollkommen aus, dass es nicht funktioniert: volatile float DesHum_f = (float)DesHum; // DesHum ist uint8_t beim Debuggen von DesHum_f Oder so was: volatile float test = FunktionMitFloatRueckgabe(float Param1, float Param2); Echt verrückt! Ich muss das Problem wohl irgendwie nachstellen. Vermutlich klappt es im kleinem aber eh nicht. Und das Ganze ist mir schon öfters aufgefallen, dass das mit einem alleinigem volatile nicht getan ist... Wie debuggt Ihr das denn? Gruß Bernhard
Du scheinst eine Variable außerhalb ihres Gültigkeitsbereiches anschauen zu wollen .... volatile wird da nicht ausreichen, deklariere sie halt global.
Hi, ich habe es mit der globalen Deklaration hinbekommen die floats zu debuggen, warum auch immer. Aber Danke für den Hinweis! Gruß Bernhard
1 | static |
statt
1 | volatile |
verwenden, dann gibt's 'dauerhafte' Speicherzuweisung im gewünschten Gültigkeitsbereich...
Tassilo Böhr schrieb: >
1 | static |
statt
1 | volatile |
verwenden, dann gibt's
> 'dauerhafte' Speicherzuweisung im gewünschten Gültigkeitsbereich...
Wenn man halt endlich mal ein bischen Code sehen würde. Dann noch eine
kleine Markierung, an welcher Stelle das Programm steht, wenn er sich
die Variablen ansieht .....
Hi, danke nochmals. Das Problem ist jetzt behoben, das mit dem static muss ich noch probieren. Gruß Bernhard
Nimm am besten static, volatile und const zusammen. Das ist am sichersten.
Danke. Ich denke mit diesem Thema wird auch vielen Einsteigern geholfen. Ich füge noch ein paar Suchtags hinzu: Debugging Debuggen float double volatile static watch window location not valid Register AVR Studio global funktionslokal lokal deklarieren MK2 Gruß Bernhard
Ja, danke. Dieser Thread ist besonders wertvoll für Einsteiger, weil man klar sieht, worum es geht. Kein überflüssiger Quelltext, der nur ablenkt und genug Stichworte. Also sehr hilfreich.
Klaus Wachtler schrieb: > Nimm am besten static, volatile und const zusammen. Wenn es sich um Funktionsparameter handelt, könnte man auch zur Vorsicht noch "restricted" hinzufügen. ;-)
Bitte den Thread nicht ins Lächerliche ziehen! Was sollen denn die Einsteiger denken?
Klaus Wachtler schrieb: > Was sollen denn die Einsteiger denken? Wenn sie denken, haben wir doch schon mal was gewonnen. Ist doch besser, als wenn sie nur blind abschreiben.
Hm, vielleicht hast du recht. Langsam begreife ich: Wenn man aus allen Threads komplett alle harten Fakten wie Quelltexte, vernünftige Beschreibungen, konkrete Daten etc. entfernt, regt das die Phantasie und Kreativität viel mehr an. Ein paar wirre Aussagen, ein paar wilde Spekulationen, alles lasch formuliert und gezielt ein paar Fehler eingebaut und schon heizen die Synapsen beim Leser wieder. Ich glaube, das würde den Standort Deutschland endlich mal wieder voranbringen.
Du bist dich Moderator: magst du mal testweise die nächsten paar Threads dahingehend modifizieren, damit man sieht, ob es sich bewährt?
Klaus Wachtler schrieb: > Du bist dich Moderator: magst du mal testweise die nächsten paar Threads > dahingehend modifizieren, damit man sieht, ob es sich bewährt? Der eine Thread hier genügt doch als Test, und den muss man ja nicht erst extra noch modifizieren... Ein wirklich guter Debugger war AVR Studio aber leider noch nie, das ist es, was die Leute dann zu derlei Dingen treibt. Schade, dass die Anbindung des JTAG ICE so verkorkst ist (komplett auf AVR Studio zugeschnitten), dass der GDB damit nun auch nicht gerade eine Leuchte ist.
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.