mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hardware- Software Debugging


Autor: Alex H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,
ich habe eine allgemeine Frage. Man hört immer von den Begriffen
Hardware und Software Debugging, jedoch habe ich nirgends eine
Erklärung gefunden(weder in Büchern noch im Internet), was genau der
Unterschied ist bzw. was die Vorteile bzw. Nachteile der beiden
Debugmöglichkeiten sind.
Vielen Dank für die Antworten.

Gruß Alex

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hardware Debugging ist, wenn der Controller diese Funktion direkt
unterstützt. Dazu benötigst du i. d. R. zusätzlich Hardware, die an den
Controller angeschlossen wird. Z. B. der In Circuit Debugger von
Microchip ist ein zusätzliches Gerät das mit dem PIC verbunden wird und
das die Debugginfeatures des PICs nutzt. Darüber kannst du sowohl
debuggen als auch flashen. Software Debugging wäre, wenn du z. B. in
deiner EIGENEN Software an bestimmten Stellen z. B. über die UART den
Wert eines Registers ausgibst. Mit Hilfe eines Terminalprogramms kannst
du dir dann auf dem PC diesen Wert ansehen und bekommst so auch eine
ungefähre Vorstellung, was in deinem Programm abgeht.

Gruß
Thorsten

Autor: Alex H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Thorsten,
die Antwort war sehr hilfreich und sogar für mich verständlich.
Kannst Du oder jemand anders mir vielleicht noch die Vor- bzw.
Nachteile nennen. Oder warum ist im Allgemeinen das Hardware Debugging
dem Software Debugging vorzuziehen? Oder ist der einzige Unterschied,
das man damit flashen kann, es ist jedoch auch mit dem ein oder anderen
Software Debugger möglich ein neues Programm in den Flash zu laden.

Gruß Alex

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, Software Debugging, so wie Thorsten es beschrieben hat,
funktioniert nur, solange das Programm nicht völlig in den Wald rennt
und keine unvorhergesehenen Ereignisse eintreten.
Außerdem wird dadurch das zu testende Programm verändert (da ja an
strategischen Stellen Debugausgaben erfolgen müssen), was sowohl
Codegröße, Speichernutzung als auch das Laufzeitverhalten beeinflusst
und so Programmfehler "zudecken" kann.

Auf diese Art und Weise nach Fehlern zu suchen, ist sehr umständlich
und ziemlich ineffizient.

Übertragen auf die Programmierung auf einem PC entspricht das übrigens
der Programmentwicklung ohne eigenständigen Debugger.

Hardware-Debugging bedeutet, daß das Programm, egal in welchem Zustand
es sich befindet, angehalten werden kann und Speicherinhalte und
ähnliches untersucht werden können.
Dabei sind -je nach Debughardware- auch sehr "mächtige" Debughilfen
wie konditionale Breakpoints möglich:
das Programm wird angehalten, wenn eine bestimmte Bedingung zutrifft;
wenn beispielsweise eine Speicherzelle einen bestimmten Wert annimmt,
unabhängig davon, an welcher Stelle sich das Programm gerade befindet.
Damit sind beispielsweise Pointerfehler lokalisierbar.

Bei neueren Controllern ist "in circuit debugging" ohne spezielle
Emulationshardware möglich; erforderlich ist nur noch ein
JTAG-Interface und geeignete Software.
Einige AVRs besitzen ein solches Interface; die MSP430-Familie von TI
bietet JTAG-Unterstüzung und größere Controller wie beispielsweise die
aus der ARM-Familie haben so etwas in der Regel auch.

Autor: Alex H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Rufus,
jetzt hab ich's verstanden.

Gruß Alex

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.