www.mikrocontroller.net

Forum: Compiler & IDEs Anfängerproblem: Code für AVR compilen


Autor: PowerProgrammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich bin ein Anfänger, der gerne mit einem atmega16 basteln würde. Ich 
vermute, mein Problem ist sehr einfach, ihr könnt mir sicher helfen:

Ich habe einen Code:
#include <avr/io.h>
unsigned char i;
int main (void)
{
  DDRD = 0xE0; // nur die höchsten 3 Bits auf 1
  while(1)
  {
    if(PIND & (1<<2))
    {
      if(PORTD & (1<<5))
        PORTD &= ~(1<<5);
      else
        PORTD |= (1<<5);
    }
  }
  return 0;
}
(Der Code ist billig, ich weiß; man kann es kürzer machen und den 
Eingangstaster entprellen, aber ich will es erstmal möglichst simpel 
machen)

Compilen tue ich den Code dann folgendermaßen:
avr-gcc -mmcu=atmega16 -Os -o main.hex main.c

Wie kann ich den Code denn richtig compilen? Fehlt ein Parameter?

Autor: Jochen S. (schiffner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum machst du das nicht mit 'make' und Makefile, da musst du nur 
einmal deine Daten eintragen und kannst dann immer in deinem 
Verzeichniss mit make compilieren.

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die HEX-Datei kannst du so nicht machen. Dafür gibt es Tool avr-objcopy 
und das konvertiert die Ausgabe von GCC (Binärdatei) in die HEX-Datei.

Man kann das von Hand aufrufen. Aber wesentlich einfacher 
(reproduzierbarer) ist es, ein Makefile zu benutzen.
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: PowerProgrammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank! Ich wusste nicht, dass der GCC keine Intel-Hexes, sondern 
ELF-Dateien ausgibt, gut zu wissen!
Make-Files nutze ich nicht, da Make bei mir unter Windows nicht 
funktioniert und unter Linux habe ich sie auch nicht zum Laufen 
bekommen, da kam irgendein Fehler, dauernd fehlten irgendwelche Pakete 
und manche konnte man nicht installieren, aus den verschiedensten 
Gründen, das habe ich nicht gecheckt (obwohl es unter Ubuntu Gutsy 
Gibbon jetzt wahrscheinlich klappt). Aus Frust habe ich die Makefiles an 
den Nagel gehängt^^

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was auch gut funktioniert.
Unter Windows das AVR-Studio von Atmel installieren.
WinAvr klinkt sich da ein und AVR-Studio fungiert als
IDE.
Damit bist du auch die makefiles los. AVR-Studio kümmert
sich darum.

Autor: Dirk Frerichs (dirk-frerichs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und dann einen USB programmer und das ganze geht direkt aus dem AVR 
studio ohne umwege über ponny oder ähnliche programmer -SW

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>da Make bei mir unter Windows nicht funktioniert

???

make funktioniert IMMER. Es kann höchstens sein, daß du mehrere auf 
deinem Rechner hast, und wegen falsch gesetzter Pfade das falsche 
aufgerufen wird.

Ein einfaches "which make.exe" verschafft Klarheit. Das passende make 
für den avr liegt im winavr-Verzeichnis unter /utils/bin.

Oliver

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.