Kannst du mir ein Zip (von deinem gesamten Projekt) machen und den vollständigen Pfad auf die Solution geben? Dann krieg ichs sicher zum Laufen :)
Druckbare Version
Kannst du mir ein Zip (von deinem gesamten Projekt) machen und den vollständigen Pfad auf die Solution geben? Dann krieg ichs sicher zum Laufen :)
Hi
wie habt ihr das mit den Include-Dateien gemacht?
z.B.
#include "io.h"
ich kann zwar ein includepfad in den Projekteigenschaften setzen jedoch erkennt er beim Durchlauf der io.h viele Defines nicht :
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(121) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(159) : error C2061: Syntaxfehler: Bezeichner 'int_least8_t'
Ich habe die Pfade
include\
und
include\avr
eingebunden.
Woanders können diese Defines doch garnicht stehen?!
öhm.. weis das denn niemand? wie macht ihr es sonst? Doch nicht alle AVR-Header manuell ins Projektverzeichnis kopieren.
Ich hab mit -I<Path> die Includeverzeichnisse in die Kompilerkommandozeile integriert. Lies mal die Doku zum GCC
Der erste AVR den ich zum laufen brachte, lief 3 Minuten, danach hatte ich in ponyprog die fusebits verstellt ;-) Das zu dem Thema. Aber du hast recht, es ist komfortabler als sich das zeug zusammenzurechnen und byteweise übergeben zu müssen.
Der Controller lebt übrigens wieder, hab einen zweiten AVR als Taktquelle missbraucht (portpin dauernd getoggelt und das dann an XTAL1 hehe)
@Maddin
die zusätzlichen Include-Paths nützen irgendwie nichts, denn der Fehler tritt VOR dem kompilieren auf (habe die compile.bat mal umbenannt, da was das gleiche Problem):
1>Die Zwischen- und Ausgabedateien für das Projekt "main" mit der Konfiguration "Release|Win32" werden gelöscht.
1>Cleaning folder d:\proj\main\main\Output\Release
1>Kompilieren...
1>motor.c
1>lcd.c
1>Kompilieren...
1>Main.c
1>Hinweis: Einlesen der Datei: D:\proj\main\main\BuildTools\WinAVR\avr\include\av r\io.h
1>Hinweis: Einlesen der Datei: D:\proj\main\main\BuildTools\WinAVR\avr\include\av r/sfr_defs.h
1>Hinweis: Einlesen der Datei: D:\proj\main\main\BuildTools\WinAVR\avr\include\in ttypes.h
1>Hinweis: Einlesen der Datei: D:\proj\main\main\BuildTools\WinAVR\avr\include\st dint.h
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(121) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(121) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(122) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(122) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(122) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(123) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(123) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(123) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(124) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(124) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(124) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(125) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(125) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(125) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(126) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(126) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(126) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(128) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(128) : error C2059: Syntaxfehler: ';'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(128) : error C2059: Syntaxfehler: 'Typ'
1>D:\proj\main\main\BuildTools\WinAVR\avr\include\ stdint.h(129) : error C2061: Syntaxfehler: Bezeichner '__attribute__'
Widerum steht hier im log "Komoilieren" zuerst, was aber nicht stimmt.
Ich versteh nicht warum das Problem keiner weiter hat.
Kann man das Studio denn nicht einfach mit einem generierten Makefile von AVRStudio füttern? Evtl geht das einfacher.. :-(
Nach dem ich es absolut nicht geschafft habe, ein funktionierendes Projekt nach Maddins Anleitung zu erstellen (selbst sein hier eingestelltes Projekt funktioniert bei mir nicht!), habe ich mir gedacht das muss doch einfacher gehen. So habe ich die Jungs von Google noch einmal auf die Suche geschickt und siehe da, es geht noch einfacher!
Vorraussetzung: Visual Studio 2008 Professional (ob auch die Standard Version reicht weiß ich nicht, die Express Version von 2005 soll auch gehen)
Wies geht steht hier: http://hubbard.engr.scu.edu/embedded...msvc_make.html
Man braucht nur ein Makefile Projekt erstellen, das Makefile in die Projektmappe kopieren und fertig!
So kann man Visula Studio so nutzen wie WinAVR.
Nur für die Übertragung auf den AVR muss ich mir noch was überlegen. Momentan nutze ich noch WinAVR dazu.
genauso ist es @TheBigK!
DerMaddin hat sich zwar extrem viel arbeit gemacht, diese ist jedoch leider völlig überflüssig.
Man muss nämlich wirklich nur ein makefile Projekt erstellen und fertig...
Mit dem mitgeliferten Makefile-Tool von Winavr ist es kein Problem sich ein solches file zu bauen...
Ich dachte eigentlich bei Maddins Vorgehensweise wird auch der GCC Error Output in das Format vom Visual Studio konvertiert, so das man nach klicken auf den Error direkt zur Zeile springen kann...aber auch das funktioniert nicht.
Genauso wenig funktioniert das "IntelliSense". Denn ich kann nicht auf die guten xMega Structuren zugreifen, die in WinAvr schon definiert worden sind..
Wenn jemand eine Lösung hat zu den beiden Problemen, bitte melden ;)
Für das Problem mit dem Error Output gibt es wohl eine Lösung:
Das Makefile muss so konfiguriert werden das es den fehler in folgendem Format ausgibt:
full_path_and_filename(line number) : errortext
Leider habe ich noch keine funktionierende Variante gefunden und kenne mich auch nicht so gut mit Makefiles aus.
Gibt es jemanden der das Makefile so konfigurieren kann?
Intelli Sense funktioniert wohl nicht so richtig weil abhängig vom verwndeten µC unterschiedliche Headerdateien eingebunden und unterschiedliche Makros und Funktionen definiert werden. Somit weiß Intelli Sense nicht welche Funktionen und Makros zur verfügung stehen. Dies ist erst bei Compilieren bekannt, da der Controlertyp im Makefile definiert ist. Ich habe noch nicht versucht Intelli Sense zu überlisten, es könnte aber möglich sein.
Hallo,
erstmal danke, für das gute Tutorial. Ich habe es nun soweit geschafft, das ich aus meiner main.c mit der minimalen funktionalität eine Hexdatei erzeugen kann.
Ich möchte vs nun für meinen RP6 nutzen, wie muss ich die mitgelieferten Libarys des RP6 einbinden?
Kann man statt Ponyprog auch den Bootloader des RP6 in vs einbinden? Wenn nicht, was muss ich ändern um ponyprob wieder komplett aus der routine zu entfernen, so das mir nur die fertige .hex erzeugt wird?
MfG
EDIT:
Also das mit den PonyProg hab ich hinbekommen um den Bootloader kümmern wir uns später ;)
Zu dem Includen, habe jetzt alle RP6 Libs in das Include Verzeichnis von WinAVR gepackt, nach dem Compilieren gibts auch keine Fehler, jedoch wird mir kein hexfile erzeugt. Wenn ich die neue "LinkThemAll" benutze kommt ein Fenster: "LinkThemAll hat ein Problem festgestellt und muss beendet werden."...
Bei der alten version kommt dieses Fenster nicht, jedoch wird mir auch da kein hexfile erzeugt.