mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IAR MSP debug


Autor: Compiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche eine Andwenung zu debuggen, aber ich kann an einigen 
Stellen im Code keinen Breakpoint setzen, erst eine Zeile später. Auch 
sind die Variablen "nicht available" in der Debug-Session obwohl sie 
benutzt werden. Wie kannn ich das abschalten ???


Danke !

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich hast du die Code Optimierung nicht auf "none" gestellt.

Optionen -> C/C++ Compiler -> Code -> Optimizations -> None
(Passend für EW430 v3.21)

Autor: Compiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert nicht.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was funktioniert nicht? Hat die Umstellung nichts gebracht, oder hast du 
die Einstellung beim Compiler nicht gefunden?
Schon mal ein Project -> Clean gemacht?

Autor: Compiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was funktioniert nicht? Hat die Umstellung nichts gebracht, oder hast du
> die Einstellung beim Compiler nicht gefunden?
Das hatte ich vorher probiert und es hat nicht funktioniert da er dann 
über ein einfaches Konstrukt meckert:

Error[Ta005]: This intrinsic function can only be used in interrupt or 
monitor functions ...

Ich habe "__bic_SR_register_on_exit(LPM1_bits);" als static inline 
deklariert und dann kommt diese Fehlermeldung bei "none". Aus diesem 
Grund habe ich ein anderes Level genommen und alle Schalter bis auf 
"function inline" ausgeschaltet.

Ich denke mal das es mal wieder, wie so oft, hidden options gibt die 
ohne Nachfragen ein- bzw. ausgeschaltet werden.

> Schon mal ein Project -> Clean gemacht?
Ja klar.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Compiler schrieb:
> Das hatte ich vorher probiert und es hat nicht funktioniert da er dann
> über ein einfaches Konstrukt meckert:
>
> Error[Ta005]: This intrinsic function can only be used in interrupt or
> monitor functions ...
>
> Ich habe "__bic_SR_register_on_exit(LPM1_bits);" als static inline
> deklariert und dann kommt diese Fehlermeldung bei "none".

Womit der Compiler völlig Recht hat. Das kann man ausschlicßlich in ISRs 
benutzen, da das gesicherte Statusregister auf dem Stack mainpuliert 
wird.

Wo wolltest du das denn benutzen?

Autor: Compiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wo wolltest du das denn benutzen?

Ich habe es als static inline function (im Header-File) deklariert und 
benutze es auch nur in der ISR.
Der Compiler meckert bei abgeschalteter "function inline" Option schon 
beim sichten des Header-Files. Es ist ihm schlichtweg egal ob es 
überhaupt oder wo es benutzt wird. Sehr merkwürdig, muss man sich für 
Level-None neue Sourcen schreiben oder wie !? (ganz schwach IAR !)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, naja, die Frage ist, wieso du das überhaupt nochmal selber 
deklarierst? Das ist doch eh schon dabei. Das gibts sogar als schönes 
Makro EXIT_LPM1 oder so ähnlich...und dahinter verbrigt sich ein 
einziger Assembler-Befehl, egal welche Optimierungsstufe angewendet 
wird.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Das gibts sogar als schönes Makro EXIT_LPM1 oder so ähnlich...
LPM1_EXIT

Autor: Compiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hm, naja, die Frage ist, wieso du das überhaupt nochmal selber
> deklarierst? Das ist doch eh schon dabei. Das gibts sogar als schönes
> Makro EXIT_LPM1 oder so ähnlich...
Tja, ich wollte beim Testen des LPM nicht durch alle Sourcen und das 
LPM1_EXIT in ein z.B. LPM2_EXIT ersetzen. Darum EINE Stelle zum ändern, 
der Rest ist murks.

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.