PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Studio 2008 Express - RP6 Programme compilieren



Current
16.08.2009, 15:58
Hallo Leute,

hat es schon jemand hinbekommen RP6 Pogramme mit VS 2008 Express zu compilieren? Ich habe das Tutorial (https://www.roboternetz.de/phpBB2/viewtopic.php?t=38230) durchgearbeitet. Jedoch ohne Erfolg (siehe meinen Post auf Seite 3). ](*,)
Liegt es vielleicht daran das bei der Methode kein makefile genutz wird und dadurch noch informationen fehlen? Bin noch ziemlich neu auf dem Gebiet. Kann mir vielleicht jemand der mit VS 2008 und dem RP6 arbeitet einen Tip geben?


MfG

SlyD
16.08.2009, 17:04
Ich arbeite nicht mit VS aber du musst dafür sorgen das ALLE Library Dateien und natürlich Deine eigenen Source Dateien gefunden werden!
Es müssen auch die Dateien der RP6Lib gefunden werden können die Du nicht in deinem eigenen Code einbindest - also z.B. auch RP6uart, I2C usw.
Schau Dir die Dateien im Lib Ordner mal an...

Im Makefile sind die Pfade alle passend eingetragen (relativ zum jeweiligen Arbeitsverzeichnis).

MfG,
SlyD

Current
16.08.2009, 18:30
Ich habe alle Dateien aus RP6base, RP6common und RP6control ausgepackt und in den Include Ordner des AVR gepackt. Ebenso habe ich alle #Include pfade innerhalb dieser Dateien, welche auf den avr zeigen angepasst. Ich habe soweit auch beim Compilieren mit einer includierten RP6RobotBaseLib.h keine Fehlermeldung.



#include <RP6RobotBaseLib.h>
int16_t main(void)
{
while(true)
{
}
}



Der obenstehende Code wird ohne Fehler compiliert und es wird mir auch eine .hex Datei erzeugt.



#include <RP6RobotBaseLib.h>
int16_t main(void)
{
initRobotBase();
while(true)
{
}
}



Hier bekomm ich zwar auch keinen Fehler aber dafür auch keine .hex Datei.

keine Ahnung ob das was ausmacht, aber in meiner compile.bat steht irgendwo "-std=c99" in dem makefile vom RP6 steht aber "-std=gnu99". Funktionier jedoch auch nicht wenn ich das umschreibe...

Ich schick mal meine Ornderstruktur mit. Bei WinAVR ist eigentlich noch mehr drin, also alles das was normal auch im Intallationsordner von WinAVR liegt, war aber zum uploaden bissel groß das ganze ;)

SlyD
16.08.2009, 18:46
Zusätzliche (nicht vorkompilierte) Libs packt man eigentlich nicht in den Include Ordner der Standard Bibliothek.
Das musst Du in einen Unterordner in DEINEM Projekt hinzufügen.

Vermutlich übersetzt der Compiler die C Dateien der RP6 Libs gar nicht mit (im standard Include Ordner liegen normalerweise NUR header Dateien - keine C Quellcodes - die sind schon fertig übersetzt in .a Dateien...) und dann sollte mindestens der Linker eigentlich nen Fehler ausspucken das er eine Funktion nicht findet.
Wenn solche Fehlermeldungen von VS unterdrückt werden würde ich persöhnlich nicht damit arbeiten wollen ;)
Wer weiss was da noch alles untergeht...

MfG,
SlyD

Current
16.08.2009, 19:33
Zusätzliche (nicht vorkompilierte) Libs packt man eigentlich nicht in den Include Ordner der Standard Bibliothek.

Also soll ich die RP6 Dateien wieder entfernen und den avr include Ordner so belassen wie er standartmäßig ist? In der RP6 Lib befinden sich ja nur nicht vorkompilerte Libs, richtig?



Das musst Du in einen Unterordner in DEINEM Projekt hinzufügen.


Ok, ich habe in VS in meinem Projekt einen virtuellen Ordner namens Header erstellt.
Was geschieht jetzt mit den RP6 Libs?
- Kann ich die Ordnerstruktur der Lib beibehalten?
- Wo müssen die Ordner hin?
- Muss ich in den Libs irgendwas verändern?
- Muss ich in den virtuellen Header Ordner alle .h und .c Dateien aus der Lib hinzufügen?

Sorry für die vielen Fragen.. aber müh mich schon das ganze Wochenende mit dem Thema ab und so langsam gehn mir die Ideen aus ;)

btw: was für ne IDE benutzt du denn SlyD? Find PN jetzt nicht so dolle, ehrlich gesagt ;)

MfG

SlyD
16.08.2009, 21:23
> Kann ich die Ordnerstruktur der Lib beibehalten?

Vermutlich nicht direkt, wenn dann musst Du die relativen Include Pfade in den Lib Dateien dran anpassen oder es VS anderweitig beibringen.

Ob es überhaupt funktioniert kannst Du überprüfen indem Du alle Dateien inkl. Deiner Quellen in einen Ordner kopierst... wenn das klappt kannst Du versuchen das auszulagern.

Bei Details kann ich Dir leider nicht helfen weil ich VS nicht benutze.
(vor Jahren mal ... )




btw: was für ne IDE benutzt du denn SlyD? Find PN jetzt nicht so dolle, ehrlich gesagt


Für die paar 8 Bit Mikrocontroller 1000 Zeiler ohne OO brauch ich jedenfalls kein Visual Studio ;)
Solange der Texteditor nen Syntax Highlighter und Suchen/Ersetzen hat reicht das schon völlig. :P

Habe alle Beispiele und die Lib des RP6 in PN2 getippt - ganz einfach deswegen weil PN2 ja auch von den Anwendern des RP6 eingesetzt werden soll und da wollte ich sicherstellen das es komfortabel genug ist ;)
Und ich denke das ist es für Anfänger - beschränkt sich auf das wesentliche.
Genau richtig für einen kleinen 8 Bitter.

Alternativ benutze ich auch noch AVR Studio aber das ist von den IDE Funktionen auch nicht sonderlich besser ausser das die Makefiles automatisch generiert werden...


Für größere Sachen natürlich Eclipse.

MfG,
SlyD

Current
16.08.2009, 22:32
Hmm... dann werd ich wohl vorerst mit pn weiterarbeiten... Trotzdem Danke für deine Mühen.
Gibt es beim pn egentlich die Option die Zeilen zu nummerieren, den Code automatisch einzurücken oder eine Syntax Vervollständigung?


MfG

Gock
17.08.2009, 00:35
Ohne Deine Anstrengungen schwächen zu wollen, finde ich das Syntax-highlightnig von Notepad++ hervorragend in Verbindung mit AVR Studio und dessen Programmer, sofern man zB einen AVRISP MKII hat. Ich schreibe im Notepad++ und kompiliere und flashe im Studio.
Welche Vorteile bringt mit das VisualStudio?
Würde mich wirklich interessieren, vor allem, unter welchen Bedingungen, also welche Vorteile bei welcher Art/Anwendung der Programmierung?
Gruß

SlyD
17.08.2009, 19:31
Wie Gock schon gesagt hat muss man natürlich auch nicht PN2 verwenden - Notepad++, Code::Blocks / DevCPP, Proton und wie sie alle heissen gehen natürlich auch. Solange da eine Batch Datei oder gar der avr-gcc direkt aufgerufen werden können ist das alles kein Problem.

Ist nur Geschmackssache!

AVRStudio brauchst Du für den RP6 aber nicht, der wird ja über den RP6Loader geflasht.


> Zeilen zu nummerieren

Das kann JEDER Editor der Syntaxhighlighting hat.

> Syntax Vervollständigung?

Nein. Wie gesagt der Editor beschränkt sich aufs wesentliche.

Wenn Du das wirklich brauchst - schau Dir Notepad++ oder DevCPP bzw. Code::Blocks an.


MfG,
SlyD

Current
17.08.2009, 22:27
Nabend,

also bin erstmal beim PN2 geblieben. Die Zeilen nummerierung und die automatische Syntaxvervollständigung hab ich mittlerweile auch gefunden. Fehlt nurnoch das automatische "eintabben" zum glücklich werden.

Hat jemand zufällig eine reine Auflistung aller Funcs aus den RP6Libs parat? Möchte nämlich alle als Keyword deklarieren, so das ich mir durch die Syntaxvervollständigung n bisschen Tipparbeit und Sucharbeit ersparen kann. ;)

MfG