www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler Programm auf ATmega16 brennen


Autor: Damien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
da ihr mir das letzte mal schon so schnell und gut geholfen habt frage 
ich euch mal nach meinem Problem.

Ich will ein Assembler Programm, welches eine LED zum blinken bringt, 
auf meinen ATmega16 brennen. Jetzt bräuchte ich die Befehlszeile vom 
avr-gcc mit dem ich dieses .s file auf den mega16 gebrannt kriege. Kann 
mir da jemand helfen bitte?

Gruß, Damien

Autor: Egal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann mir da jemand helfen bitte?
Google, die Forensuche und die Tutorials hier. GCC ist für C gemacht.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Egal schrieb:
> GCC ist für C gemacht.

Na ja, gcc kann auch Assembler und weiß, was er mit .s anfangen soll.

Die Frage ist zunächst eher, ob das Assembler-Programm für avr-gcc 
(avr-as) geschrieben ist oder für Atmels Tool, den avrasm2.exe.  Da gibt 
es ein paar Unterschiede in der Syntax.

Dann kannst Du natürlich ein .s nicht brennen, das Ergebnis wäre 
nutzlos.  Du musst es übersetzen (avrasm2.exe oder avr-gcc).  Das ergibt 
ein .hex (.elf geht meist auch), das zum Brennen bereit ist.  Gebrannt 
werden kann z.B. mit avrdude oder mit den eingebauten Brennprogrammen im 
AVR Studio oder auch ganz ohne mit Bootloader.  Das kommt darauf an, wie 
Deine Hardware aussieht.

Autor: Damien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Programm Code:

.NOLIST
.INCLUDE "m16def.inc"
.LIST

.DEF mp=R16

        rjmp    main

main:

        ldi     mp,0b10000000

        out     DDRD,mp

loop:

        ldi     mp,0x00
        out     PORTD,mp

        ldi     mp,0xFF
        out     PORTD,mp

        rjmp    loop

Dies will ich jetzt gerne auf meinen ATmega16 brennen. Ich arbeite auf 
Linux und habe meine C-Programme früher immer über ein Makefile 
gebrannt.. dort hier die anweisung:
brennen: $(f).hex
        avrdude -u -e -c avrisp2 -P usb -p m16 -U flash:w:$^

Gruß und danke im Voraus

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Quellcode ist für Atmels Tools geschrieben.  Du wirst also zum 
Übersetzen avrasm2.exe mit wine verwenden müssen oder das Quellfile 
umschreiben.  Zum Brennen hast Du schon die richtige Kommandozeile 
gefunden, dabei das „$^“ durch den Namen Deiner .hex ersetzen.

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.