PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 mit C++ möglich?



KristofB
02.12.2007, 11:08
Hi Leute,

ich habe gestern meinen RP6 bekommen und hab natürlich gleich angefangen, ein wenig damit rumzuspielen.
Ich hab - denke ich - die Beispiele begriffen und auch bereits mein erstes eigenes Programm geschrieben (ohne Kollision frei im Raum bewegen) und auf dem Bot installiert - klasse, dass das alles so einfach geht.

Jetzt komm ich aber aus der Software-Branche (beruflich) und denke das es besser ist, bzgl. der Programmierung einen möglichst hohen Abstraktionsgrad zu erreichen. Ein erster Schritt wäre da m.E. die Anwendung der OOP (objektorientierte Programmierung).
Damit lassen sich Dinge wie Strategy-Pattern und State-Machines einfach deutlich eleganter abbilden.
Kompiliert der AVR-GCC auch C++ ??
Hat jemand damit Erfahrung? Oder gibt es einen anderen Compiler, der C++ kann und auch Maschinencode für den ATMega32 erzeugt?

Danke für jede Antwort vorab,

Kristof

KristofB
02.12.2007, 11:13
Okay, sorry.
Ich hab nochmal etwas strukturierter hier auf der Seite gesucht. Ja, er kann C++, ist schließlich ein GCC-Port. Bitte, bitte, bitte, löscht oder vergesst diesen peinlichen Thread ;-)

Gruß

-kb

roboterheld
02.12.2007, 11:16
....Jetzt komm ich aber aus der Software-Branche (beruflich) .....

irgendwie begreifst du das system nicht. hast du dich eigentlich schon einmal ordentlich mit winavr-c auseinandergesetzt.

ich glaube du hast das falsche system gekauft. c++ kannste mit dem arm-prozessor proggen sogar mit linux drauf usw. gibt es schöne boards die man dann auf dem robby draufsetzen kann.

KristofB
02.12.2007, 23:27
Öhm, Hi "Roboterheld",

ich verstehe Dich nicht ganz.
Die Frage, ob ein Compiler für C++ geeignet ist oder nicht, hat absolut nichts mit dem verwendeten Prozessor zu tun.
Ein Compiler erzeugt Manschinencode : Egal ob Du dafür C, C++, Pascal, Fortran, Cobol, Lisp oder Eiffel verwendest. Du brauchst eben nur einen Compiler, der aus einer Hochsprache Maschinencode für die Zielplattform erzeugen kann.
Ebenfalls neu wäre mir, wenn ARM neuerdings Betriebssysteme in seine RISC-Prozessoren gießt.

c++ kann ich z.B. mit einem x86, einem ARM, einem AMD Opteron, einem Motorola MC68000 oder einem 6520 "proggen". Alles eine Frage des Compilers.

Wie meiner ersten Antwort auf mein eigenes Posting zu entnehmen, weiß ich bereits, dass der AVR-GCC als Port des GCC durchaus C++ kompilieren kann (bzw. dessen Derivat avr-c++).

Ich bin mir nicht sicher, ob nicht DU das System ggf. nicht verstanden hast.
Aber hey, ich bin hier um zu lernen. Belehre mich.

(Bevor es jemand falsch versteht: Sollte ich mit meinem Behauptungen falsch liegen, möchte ich WIRKLICH belehrt werden. Ansonsten mach ich <Sarkusmus>-Tags)

An die anderen:
Hat schon jemand ein passendes Makefile gemacht? Ich finde zwar ein paar für AVRStudio und myAVR Workpad, aber keines welches "ad hoc" mit PN2 und dem RP6 (ATMega32) zusammenarbeiten würde.
Wäre dankbar, wenn mir mal jemand eins schickt.

Oder verwendet jemand AVRStudio bzw. myAVR oder Dev++ mit dem RP6? Das wäre natürlich auch was nettes.

Ach so: Ich bin starke IDEs gewohnt (Visual Studio, Eclipse). Erwartet also nicht, dass ich jeden kryptischen Hinweis auf Parameter in Makefiles sofort verstehe - ich werde mir aber größte Mühe geben.
Oder hat jemand das ganze schon für Eclipse gebastelt?

Gruß

Kristof

roboterheld
03.12.2007, 18:52
....Ach so: Ich bin starke IDEs gewohnt (Visual Studio, Eclipse). Erwartet also nicht, dass ich jeden kryptischen Hinweis auf Parameter in Makefiles sofort verstehe - ich werde mir aber größte Mühe geben. ....


das wird zeit das du von den ides weg kommst. sonst lernst du das proggen nie.

Eclipse ist was für anfänger, man kommt nicht dahinter was da genau passiert hilft aber ein schnell etwas zu realisieren. also nichts für berufsprogger.

Bart W.
03.12.2007, 20:50
@roboterheld:
Komisch, die (C++) Programmierer in meiner Abteilung sind gerade auf Eclipse umgestiegen um noch effektiver arbeiten zu können! In der Regel können "Berufsprogger" programmieren und müssen sich nicht mehr anschauen was Bit für Bit passiert!

@KristofB:
Beachte roboterheld nicht weiter, der ist ein allwissender Streitsuchbot der allzubereitwillig sein perfektes und unanfechtbares "Wissen" preisgibt!

Gruss Bart

KristofB
04.12.2007, 11:00
@Bart W.
Endlich normale Leute ;-)
Aber ignorieren kann ich das nicht.

@roboterheldchen
Wenn "Berufsprogger" (proggen - diese Abkürzung benutzen meines Wissens nur Scriptkids) mit Tools wie Eclipse, Visual Studio, NetBeans, SharpDevelop etc. keinen Produktivitätsvorteil erzielen, sollten sie sich Gedanken darüber machen, ob sie nicht lieber zum Maurer umschulen.
Software oberhalb von Berufsschul- oder Informatik-AG-Niveau lässt sich ohne eine ernsthafte IDE nicht erreichen - oder eben in einem nicht wettbewerbsfähigen Zeitraum.
Leute die sowas schreiben, sagen vermutlich auch "Dokumentation ist für Schwächlinge". Jeden Kommentar darüber erspare ich mir.
Wenn Du mal ein Projekt mit einem Umfang >100.000 Zeilen betreut und weiterentwickelt hast, wirst Du wissen, dass Instrumente wie Code-Coverage, Unit-Tests, Tracing/Profiling, UML und Refactoring sinnvoll und produktivitätsfördernd sind.
Eine IDE ist nicht gleichbedeutend mit minderer Code-Qualität - anders herum wird schon eher ein Schuh draus.

Im übrigen : Was hat das ganze mit meiner Frage zu tun? Wenn Du so viel weißt, dann lass uns doch bitte an Deinem unerschöpflichen Fundus aus Erfahrung, Wissen und Macht teilhaben.
Ich will keine IDE, sondern einen Hinweis auf ein Makefile. Den Punkt IDE habe ich nur eingebracht um einem [gewissenhaften] Antworter klarzumachen, dass ich ein Beispiel brauche, weil ich Makefiles eben id.R. nicht von Hand schreibe (das macht die IDE, das spart Zeit und liefert reproduzierbare Ergebnisse).

An alle anderen:
Ich habe inzwischen ein Makefile bei AVRFreaks gefunden. Damit komme ich schonmal ein Stückchen weiter. Ich hab noch ein Problem mit der ELF-Transformation. Sobald ich es hinbekommen habe, kann ich das Ergebnis gerne posten, falls jemand Interesse bekundet (und nicht alle in Assembler programmieren, weil <Ironie>OOP übergewichtig und langsam ist</Ironie>).

Gruß

-Kristof

robocat
04.12.2007, 12:25
hallo Kristof,
zuerst gesagt, dass ich von OOP nicht viel ahnung habe.

soweit ich weiss, ist das avr-c++ nicht vollständig umgesetzt, aber ich habe mal eine klasse mit paar funktionen erstellt, das wird problemlos kompiliert, wenn ich im makefile meine quelldateien bei "CPPSRC = ..." aufliste. das "SRC = $(TARGET).c" habe ich auskommentiert.

soweit bist du aber wohl inzwischen auch schon. ich hänge das projekt mit makefile trotzdem mal an.

gruesse

EDIT: hmpf, jetzt habe ich das PN projektfile nicht mit reingepackt, sry. einfach ein neues projekt erzeugen und die beiden cpp dateien hinzufügen. dann bla.cpp aufmachen und Options-MakeAll.

was stimmt denn mit deinem ELF nicht?

KristofB
04.12.2007, 12:42
Hi Robocat!

Na, das ging ja "rubbel-die-katz" (entschuldige das billige Wortspiel ;-) ).
Danke schonmal. Bin momentan leider im Büro und kann's daher nicht ausprobieren. Werde ich aber gleich heute abend machen (die Frau geht zum Sport, da ist Zeit für Robby, hehe).

Ich hab die Meldung nicht vollständig im Kopf. Irgendwas in Richtung "no rule to make testcpp.elf, needed by elf.".
Grmpf.

Ich hab - meine ich - das gleich gemacht wie Du (CPPSRC=).
Allerdings habe ich "SRC=" nicht auskommentiert und außerdem aus dem Makefile von AVRFreaks einen Zusatz bei den Transformationen (c++ nach object) eingebaut. Vielleicht ist das des Pudels Kern.

Danke jedenfalls. Ich melde mich, wenn's klappt.

Gruß

-Kristof

KristofB
04.12.2007, 12:48
Nochmal Hi Robocat.

Also, dass Makefile sieht meinem sehr änlich. Der genannte Zusatz ist da auch drin. Ich werde Deins mal ausprobieren. Vermutlich irgendeine jämmerliche Kleinigkeit....

Danke!