Forum: Mikrocontroller und Digitale Elektronik Keil / STM32 - assert, debug console


von steve (Gast)


Lesenswert?

Tach auch.

Ich bin in der welt der µCs recht neu.
Ich bin genötigt, dieses steinzeitlich anmutende ding Keil µVision 4 zu 
benutzen, arbeite an einem Cortex M3 (STM32) projekt.

1)
Ich bin es nun aus anderen entwicklungsumgebungen gewohnt, dass ich beim 
nutzen von assert() aus assert.h, die es in der STM library auch gibt, 
beim fehlschlag der bedingung in () mit der IDE in's betreffende code 
file / zeile crashe, und sehe, wo was los ist.

Ich bin dabei, einem bestehenden programm funktionalität hinzuzufügen, 
und musste feststellen, dass sich assert() in der o.g. Umgebung nicht so 
verhält,
sondern das programm im fehlerfall einfach "hängt", das aber weder 
überhaupt irgendwie angezeigt wird, und schon gar nicht ins betreffende 
sourcefile gesprungen wird.

Sind das vielleicht falsche IDE einstellungen, oder könnte das programm, 
an dem ich arbeite (und nicht wie meine westentasche kenne), das 
irgendwie blockieren?

Oder gibt's in diesem entwicklungsrahmen gar kein in dieser eingangs 
beschriebenen weise funktionierendes assert()? Wäre dann ja völlig 
nutzlos...

2)
gibt's die möglichkeit, eine debug output console zu öffnen, wo printf() 
text hinsendet? Ich meine sogar, das schonmal gesehen zu haben, finde 
aber keine einstellung dergleichen.

von Lutz (Gast)


Lesenswert?

Das Verhalten von assert() in der STM-Lib kann man, glaube ich mich zu 
entsinnen, über ein #define irgendwo einstellen; mußt mal in die Doku 
schauen.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

assert_param() oder assert()? Ersters Teil der STM-Library (siehe deren 
Dokumentation, Beispiele, Quellcode nach USE_FULL_ASSERT absuchen). 
Letzteres Teil der Toolchain und in deren Online-Hilfe gut erläutert. 
Frage ist besser im Support-Forum bei keil.com aufgehoben (überflüssige 
Bewertung in der Einleitung dort noch weniger antwortermotivierend als 
hier).

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
Noch kein Account? Hier anmelden.