mikrocontroller.net

Forum: Compiler & IDEs AVR GCC Tutorial nicht ganz klar


Autor: Markus Neubauer (roboscan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal möchte ich hallo sagen, da ich neu in diesem Forum bin.
Kurz zu mir: Bin 19 Jahre, Azubi und wohne in München.

Ich hab mir schon seid einiger Zeit in den Kopf gesetzt AVRs zu
programmieren und hab gerade damit angefangen.
Durch das AVR-GCC Tutorial hab ich schon einiges gelernt jedoch stehe
ich am Anfang und komme über einen Punkt nicht weg:

Es wird etwas von "Makefiles" geschrieben.
Nur hab ich es leider einfach nicht verstanden wie ich dieses Makefile
anlegen kann und wozu das wirklich gut ist. Nur habe ich gemerkt das
ich ohne dem Makefile meinen Code nicht zum laufen bringe, wenn ich am
Anfang "#include <avr/io.h>" stehen habe.  Deshalb habe ich dann
wie im Tutorial beschrieben einfach "#include <avr/iom8.h>"
geschrieben, wobei mir das AVR Studio wenn ich auf "Project -> Build"
klicke schreibt "Cannot find include file..."

Was mache ich falsch?

Im Moment habe ich noch kein IC angeschlossen da mein Programmierboard
(STK200) vorraussichtlich erst morgen kommt, aber es sollte doch gehen
das der Code zumindest kompiliert wird oder?

Tut mir leid für diese für euch warscheinlich totale "Noob" Frage
aber ich würde an diesem Punkt gerne weiterkommen und im Forum habe ich
dazu leider nichts gefunden.

Gruß Markus.

Autor: Markus Neubauer (roboscan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja also Code hab ich zum testen das hier verwendet:
#include <avr/iom8.h>

int main(void)
{int i, n = 40;
DDRB = 0b00001100;
PORTB = 0x00;
while (1)
{
PORTB ^= 0b00000100;       // EX-OR
for (i=0; i<n; i++){
  _delay_ms(25);
  }
PORTB ^= 0b00001000;       // EX-OR
}
}

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte mit Makefiles am Anfang auch meine liebe Not und krieg auch
jetzt immer noch nicht alles zusammen. Ein Tip wenn du unter Windows
arbeitest: nimm das AVR Studio von Atmel. Dann kommst du mit den
Makefiles nicht in Berührung und kannst Dich erstmal auf's
Programmieren konzentrieren

Autor: Andreas Thanheiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servas Markus
Ich nehm an, Du verwendest das neuste AVR-Studio mit gcc-Integration.
Damit brauchst Dich nimmer mit Makefiles auseinandersetzen (machts
nämlich automatisch - net wie mit avr-gcc und Programmers Notepad).
Du musst natürlich dem AVR-Studio sagen, wo die include-Dateien sind.
Das geht unter Project->Configuration Options da unter Include
Directories.
Da musst den Pfad zum WinAVR include-Ordner angeben.
Gruß aus München
Andreas

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Und wenn WinAVR zuerst installiert wurde und danach das AVR
Studio werden die wichtigen Pfade sogar automatisch erkannt und
eingebunden. So war's zumindest bei mir. Ich arbeite seit ein paar
Tagen damit und bin recht zufrieden

Autor: Markus Neubauer (roboscan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten.
Tut mir leid, ich hatte vergessen zu schreiben das ich mit dem AVR
Studio 4 arbeite.
Also da gibt es bei mir unter "Projects" nicht "Configuration
Options"
Ich habe unter Projects jedoch "Assembler Options" wobei wenn ich
dort den Pfad zu "C:\WinAVR\avr\include" angebe, kommt der fehler
wieder.
Ich habe es mit
"#include <avr/io.h>",
"#include <io.h>",
"#include <avr/iom8.h>" und
"#include <iom8.h>"
im Code versucht, aber immer kommt der Fehler.

Ist es ausserdem richtig, wenn ich ein Projekt eröffne, daß ich dann
also Project Type "Atmel AVR Assembler" (was da als einzigstes
steht),
sowie als Debug Plattform "AVR Simulator" wähle?

Kann ich damit dann auch das STK200 betreiben oder hat das damit garnix
zu tun?

Autor: Andreas Thanheiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servas nochmal.
Du brauchst das neuste AVR-Studio4 (bei mir is des Version 4.12 Build
460 - einfach mal auf www.atmel.com schaun). Da kannst dann auch AVR
GCC als neues Projekt auswählen. Mit dem Programmieren wirst glaub ich
ein anderes Programm brauchen. Das AVR_Studio unterstützt nur das
STK500 und die ISP-Adapter von Atmel(natürlich auch die Nachbauten). Da
aber WinAVR  avrdude benutzt und das AVR-Studio ja nur WinAVR über ein
Plugin einbindet, weiß ich etz net genau, obst des STK200 mit
AVR-Studio zum Laufen bringst(ich benutz STK500). Im Notfall halt
avrdude anschauen und des erzeugte hex-File im Projektordner damit in
den Controller schreiben.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stelle erstmal sicher das du Version 4.13 (build 460) hast.

Dann schaust du mal im Menu "Project" nach dem "Project Wizard". Da
sagste "New Project" und dann müsstest Du dort "AVR GCC" auswählen
können wenn alles richtig installiert ist. Wie gesagt, zuerst WinAVR,
ich glaub am besten nach C:\WinAVR, und dann das AVR Studio. Dann geht
das automatisch. Ob es in anderen Verzeichnissen geht weiß ich nicht
weil ich das noch nicht probiert hab. Dann muß man es manuell
einrichten

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm, Sorry, 4.12 natürlich

Autor: Markus Neubauer (roboscan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Sache ;-)

Dank an euch, jetzt geht es soweit.

Ich musste auf der Homepage von Atmel nach Version 4.13 suchen da er
mir das sonst normal auf der Page nicht angezeigt hat.

Jetzt krieg ich nur noch ne Fehlermeldung das "delay_ms" unbekiannt
ist.
Aber ich denke das muss ich jetzt nur noch irgendwo selber deklarieren
oder gibt es dafür schon einen fertigen code?

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

damit das delay funktioniert einfach delay.h einbinden.


#include <avr/delay.h>

Gruß Volker

Autor: Markus Neubauer (roboscan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke hab ich gerade vor 10sec gefunden :-)

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal zum Makefile: In der Tat, erst wird darauf hingewiesen, wie
wichtig/komfortabel ein Makefile ist, ABER es arbeitet nicht jeder mit
AVR Studio x.y, es gibt auch Leutz wie mich, die machen mit Linux rum
und das noch mit einem Editor und eben Makefile von Hand gebaut. Und
genau dazu fehlt was in dem Script. Genauso fehlt dann dazu die
Kommandozeilengeschichte zu avr-gcc. Das musste ich mir erstaml muehsam
raussuchen durch irgendwelche anderen Makefiles, die zu irgendwelchen
AVR-Projekten gehoeren.

Wieso nicht einen Exkurs zu Makefiles dazupacken? Natuerlich nicht als
Kapitel 1 ooder 2, sondern in den Anhang.

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Abschnitt "Exkurs Makefile" wurde anfaenglich von mir verfasst und
von anderen Wiki-Nutzern erweitert/korrigiert. Es gab bis vor wenigen
Wochen keine offizielle Version des AVR-Studio mit gcc-Integration. Die
ersten Beta-Versionen waren auch so "im Fluss", dass ich keinen
Tutorial-Abschnitt dazu erstellen wollte.

Der Abschnitt sollte weder alle moeglichen Optionen des
Compiler-Frontends erlaeutern, noch beschreiben wie man makefiles von
null selbst erstellt, sondern lediglich ein paar grundlegende Hinweise
geben, um aus dem C-Code etwas "brauchbares" zu erzeugen. Die
WinAVR-makefile-Vorlage und mfile nehmen den Grossteil der Arbeit ab.

Es ist "nur" ein Tutorial, auch wenn einige Abschnitte inzwischen
etwas mehr als nur eine Einfuehrungsanleitung sind. Vollstaendige
Information findet man in den Dokumentationen der gnu-Tools (make, gcc
etc.) und im sehr guten avr-libc-Manual. Es ist meiner Meinung wenig
sinnvoll, aus diesen Texten ganze Abschnitt in das Tutorial zu
kopieren.

Jeder kann das Tutorial im Wikki erweitern und verbessern. Ansonsten
werde ich den Abschnitt bei Gelegenheit ueberarbeiten. Es wird dabei
wohl auf einen Hauptabschnitt "Compilieren und Linken" hinauslaufen,
in dem sowohl "AVR Studio/gcc-Plugin" und "Nutzung von Makefiles"
als Unterabschnitte eingeordnet werden.


Martin Thomas

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde auch sagen, nimm ein Beispiel-makefile, oder noch besser,
benutuze mfile.

Ich hab das letztemal vor Jahren Makefiles selbst geschrieben, auf dem
PC macht man das auch nicht, sondern arbeitet mit autoconf/automake.
Deswegen nehm ich lieber ein Template und passe es immer an, ist ja
nicht viel zu ändern, im Prinzip nur MCU und die SRC Dateien.

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"es gibt auch Leutz wie mich, die machen mit Linux rum"

das ist der schwachpunkt "die machen mit Linux rum".
ich habe noch keinen linuxuser gekannt, der etwas brauchbares zum
vorzeigen geschafft hat, die haben alle selber probleme mit dem
linuxkauderwelsch und kommen eigentlich nicht auf den kern des
ausführungsprogrammes.

pebisoft

Autor: Michael Kondor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@pebisoft
Vielleicht kennst du einfach zu wenig Leute.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Außerdem funktioniert seine Shift-Taste nicht.

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@pebisoft (& der interessierte Rest)
hast ja nun wirklich einen schweren Stand. Erstmal, wie vielleicht
schon richtig vermutet, kennst du zuwenig Leute, die mit Linux
"rummachen" und dabei auch noch was sinnvolles rauskommt. Erweitere
mal deinen Horizont.

Und dann gibt es noch dieses Ding hier (clique ici:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=13812).

Vielleicht solltest du mal deine Verhaltensweise aendern, denn
irgendwas vom Glaubenskrieg ueber Betriebssysteme will ich hier
ueberhaupt nicht lesen.

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da hast du recht , es gibt wenig leute die sich auf meiner höhe begeben
können. mit dem unteren gebe ich mich nicht ab.
ich brauche schon etwas besseres.
ich will aber keinen damit erniedrigen, manche schaffen es halt nicht,
aus dem herauszukommen wo sie gerade drinstecken.
ich möchte auch keinen glaubenskrieg erklären. jeder soll das machen
was er finanziell kann. es gibt arme menschen die immer im sumpf
bleiben.

pebisoft

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pebisoft, deine Logik verstehe ich nicht.
Versuchst du, dein geistiges Niveau mit Geld zu heben?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für das Geld sollte er sich erstmal eine Shift-Taste kaufen. :)

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, wir haben es hier mit 2 verschiedenen pebisofts zu tun :

1. ein Troll, der bis zum 1.2.2006 aus dem RoboterNetz-Forum verbannt
wurde (siehe
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?...),
mit seiner plumpen Anmache mich aber mitunter zum Schmunzeln bringt

2. einen durchaus hilfsbereiten Zeitgenossen, der auch Anfaenger normal
behandelt

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möge sich der ,,richtige'' doch besser einen Account verschaffen
und einloggen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.