Forum: Mikrocontroller und Digitale Elektronik ARM Programmierung/Debuggen mit Eclipse CDT 3.3 + Zylin Embedded CDT


von It H. (ithiwiz)


Lesenswert?

Hi Leute!

Ich bin nicht sehr erfahren auf dem Gebiet, also seid nett zu mir . ;)

Wir nutzen Eclipse CDT 3.3 mit dem Zylin-Plugin. Angeschlossen an diese 
Workstation ist über einen JTAG-Key eine kleine Platine, auf die wir nun 
ein Programm laden und debuggen wollen.
Mit dem GCC-Compiler und Gnu Make erstellt und Eclipse auch fein eine 
kleine Datei [ELF-Format] . Nur ist jetzt die Frage, wie bekommen wir 
sie auf den Phillip's Chip auf der Platine?
Der komplette Systemaufbau von unten nach oben:

Board mit Philips FPGA->JTAG-Key per USB an Rechner->OpenOCD als 
Schnittstelle->Eclipse mit Zylin

Wir suchen jetzt praktisch die Befehle, mit denen wir dem Chip über die 
Konsole in Eclipse unser Programm reinladen können, denn das scheint 
beim Debuggen ja irgendwie nicht automatisch zu passieren, oder?
Der Chip selber hat nur einen winzigen RAM und einen etwas größeren 
Flash-Speicher, in den das Programm geladen werden soll. Wie gesagt, es 
geht uns hauptsächlich um die generellen Befehle, wie man das macht.

Weiterhin hätten wir da noch das Problem mit Assembler-Files. Wir wissen 
nicht wirklich, welche ASFLAGS in der Make-File gesetzt werden müssen, 
damit der Compiler bzw. Linker die Assembler-Files mit einbezieht. Gibt 
es hier etwas bestimmtes zu beachten? Wenn wir welche versuchen mit zu 
kompilieren, werden sie irgendwie ignoriert.

Ich verrate euch gerne alle Infos die ihr noch braucht.

Danke Leute!!

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

It Hiwi wrote:
> Hi Leute!
>
> Ich bin nicht sehr erfahren auf dem Gebiet, also seid nett zu mir . ;)
>
> Wir nutzen Eclipse CDT 3.3 mit dem Zylin-Plugin.
3.4 ist verfügbar, Zylin-Plugin ist o.k. aber es gibt inzwischen ein 
"offizielle" embedded-GDB plugin aus dem CDT Eclipse-Unterprojekt. Düfte 
aber nicht ausschlaggebend sein.

> Angeschlossen an diese
> Workstation ist über einen JTAG-Key eine kleine Platine, auf die wir nun
> ein Programm laden und debuggen wollen.
> Mit dem GCC-Compiler und Gnu Make erstellt und Eclipse auch fein eine
> kleine Datei [ELF-Format] . Nur ist jetzt die Frage, wie bekommen wir
> sie auf den Phillip's Chip auf der Platine?
> Der komplette Systemaufbau von unten nach oben:
>
> Board mit Philips FPGA->JTAG-Key per USB an Rechner->OpenOCD als
> Schnittstelle->Eclipse mit Zylin

Ein Anfang wäre, die genaue Bezeichnung des "Philips FPGA" zu nennen. 
Schon nachgeschaut, ob OpenOCD den "Philips FPGA" unterstützt?

> Wir suchen jetzt praktisch die Befehle, mit denen wir dem Chip über die
> Konsole in Eclipse unser Programm reinladen können, denn das scheint
> beim Debuggen ja irgendwie nicht automatisch zu passieren, oder?

Sofern der Chip unterstützt wird und man die Konfiguration richtig 
gemacht hat (was manchmal nicht ganz einfach ist), dann wird per 
gdb-Befehl load das Image auf den Chip transferiert. Auch ins Flash 
(zumindest bei neueren OpenOCD Versionen) funktioniert hier 
zufriedenstellend mit AT91SAM7SE. Vgl. OpenOCD-Dokumentation 
(openocd.texi im SVN oder daraus gemachte info, pdf, etc. Abschnitt 
gdb-flash-programming oder ähnlich)

> Der Chip selber hat nur einen winzigen RAM und einen etwas größeren
> Flash-Speicher, in den das Programm geladen werden soll. Wie gesagt, es
> geht uns hauptsächlich um die generellen Befehle, wie man das macht.

"der chip...winzig...etwas mehr...Orakel". Einfach die Chipbezeichnung 
nennen, noch besser direkter Link zum Datenblatt. Ohne die Information 
kann man schlecht helfen.

> Weiterhin hätten wir da noch das Problem mit Assembler-Files. Wir wissen
> nicht wirklich, welche ASFLAGS in der Make-File gesetzt werden müssen,
> damit der Compiler bzw. Linker die Assembler-Files mit einbezieht. Gibt
> es hier etwas bestimmtes zu beachten? Wenn wir welche versuchen mit zu
> kompilieren, werden sie irgendwie ignoriert.

Den Linker interessieren nur Objekt-Dateien. ASFLAGS sind üblicherweise 
Optionen für den Assembler und Änderungen daran helfen nur vielleicht. 
Wird objekt-Code aus dem Assemblercode erzeugt (eine ".o-Datei")? Ist 
die generierte Objekt-Datei in der Liste der zu linkenden Objekte?

> Ich verrate euch gerne alle Infos die ihr noch braucht.

Nur zu.

von It H. (ithiwiz)


Lesenswert?

Danke für die großartige Antwort!
Das Problem mit der Programmierung hat sich inzwischen gelöst, es 
mussten spezielle OpenOCD Kommandos genutzt werden.
Den Namen des FPGA kann ich leider nicht sagen, ich habe ihn derzeit 
nicht in meiner Nähe.

Im Moment gibt es nur noch ein Problem, was sich jedoch nicht auf den 
FPGA bezieht:
Wie kann ich es schaffen, dass ASM-Files als Quellfiles erkannt werden?

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.