Forum: Mikrocontroller und Digitale Elektronik Debugger für Mikrocontroller-IP-Core (mit VHDL geschrieben)


von marcus w. (Firma: student) (ma-wa)


Lesenswert?

Hallo zusammen,

ich bin neu in diesem Forum und hoffe, dass ihr mir etwas weiterhelfen 
könnt.

Es geht darum, einen Debugger für ein mit VHDL geschriebenen 
Mikrocontroller-IP-Core zu entwickeln. Bei dem IP-Core handelt es sich 
um einen RISC Prozessor mit 32 Bit Logik, der auf einem Altera Cyclon 3 
FPGA läuft. In einem früheren Projekt wurde der GNU-C-Compiler so 
portiert, dass man C-Programme auf einer Windows Plattform compilieren 
und auf den µC ausführen kann. Der Programmcode wird über den 
In-System-Programmer der Altera Quartus Software in das ROM geladen, da 
der Controller noch keine Schnittstelle nach außen hat.

Meine Absicht ist es nun, als erstes eine UART-Schnittstelle 
(VHDL-Modul) zu implementieren, um eine serielle 
Kommunikationsschnittstelle zu haben und einen Treiber dafür zu 
schreiben (mit C).

Bezüglich des Debuggers hab ich jetzt schon etwas recherchiert. Dabei 
ist mir der GDB mit der Remote Debugging Option ins Auge gefallen. Ich 
müsste diesen halt dann an meine Prozessorarchitektur anpassen, was ich 
für nicht ganz so leicht halte.

Eine andere Möglichkeit wäre, ein Debug-Modul in VHDL zu entwickeln 
(stell mir ne State-Machine vor). Dieses Modul müsste über die serielle 
Schnittstelle mit einem Terminal kommuniziert und Debug-Befehle 
umzusetzen, die der User über das Terminal eingibt.

Folgende Debugging Optionen sollten möglich sein:
-Breakpoints setzen/löschen
-Run/Stop
-Step in (um in Subroutine einzusteigen)
-Continue (um aus Subroutine raus zu kommen bzw. diese überspringen)
-Register- und Variableninhalte anzeigen
-Beenden

Hat jemand Erfahrungen mit sowas gemacht und kann mir da den ein oder 
anderen Tipp geben? Bin echt dankbar für jede Hilfe.

von Maxx (Gast)


Lesenswert?

marcus wawrik schrieb:
> Folgende Debugging Optionen sollten möglich sein:
> -Breakpoints setzen/löschen
> -Run/Stop
> -Step in (um in Subroutine einzusteigen)
> -Continue (um aus Subroutine raus zu kommen bzw. diese überspringen)
> -Register- und Variableninhalte anzeigen
> -Beenden
>
> Hat jemand Erfahrungen mit sowas gemacht und kann mir da den ein oder
> anderen Tipp geben? Bin echt dankbar für jede Hilfe.

Was spricht gegen da bewährte JTAG?

von marcus w. (Firma: student) (ma-wa)


Lesenswert?

An sich spricht da nichts dagegen, aber das ganze soll über die serielle 
Schnittstelle (COM-Port) des PC's laufen.

von marcus w. (Firma: student) (ma-wa)


Lesenswert?

Wobei mein Hauptproblem aber nicht die Schnittstelle ist, sondern eher 
das Entwickeln des Debuggers, bzw. das Portieren des GDB.
Hat jemand den GNU-Debugger schon mal für ne komplett neue 
Controller-Architektur, also eine die er bis jetzt noch nicht 
unterstützt, portiert?
Und das für Windows?

von Peter (Gast)


Lesenswert?

Nios 2 -> Nios 2 Debugger.
Ein eigener softcore ist es auch nicht ...
Selbstmachen geht nicht in einer Gesunden Zeitspanne -> es ist günstiger 
Tools von Lauterbach, etc zu verwenden. Billiger als ein Ingenieur der 
entwickelt ist es sicher ...

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.