leichter Einstieg in ASM für AVR

Gast #1684021
Lesenswert?

Hallo,

habe beim Googeln das AVR-ASM-Tutorial von Gerhard Schmitd entdeckt.
Sieht interessant aus.

Jetzte will ich selber mal ein paar Sachen in ASM ausprobieren.

Habe allerdings nur Bascom-Erfahrung und einen SP12-Progger (allerdings 
mit eigener Stromversorgung, nicht vom PC).

Bin jedoch auch Bascom-verwöhnt: Programm schreiben, kompilieren, auf 
AVR brennen, geht alles mit Bascom-AVR.

Wie sieht es denn bei ASM aus, gibt es da auch was ähnliches, also 
Editor, Compiler und Brennprogramm (für SP12) in einem?
Wenn ja, was könnt ihr empfehlen?
Gast #1684027
Lesenswert?

Nimm das AVR-Studio. (Gibts auf der Seite von Atmel) Ist sogar ein 
Softwaredebugger mit drin.

Vorteil ist, das man sogar seine Bascom-Hex Files damit einlesen kann 
und debuggen kann... ;) (Und man sieht, was für einen grauenhaften Code 
Bascom manchmal produziert)

Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...

Mirko
Gast #1684170
Lesenswert?

spess53 schrieb:
> Du kannst deine Programmiersoftware vom AVR-Studio aus aufrufen.

dann müsste ich Bascom AVR aufrufen, geht das?

wovor mir grauen würde, wäre, dass ich mit dem eine Programm das 
ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem 
anderen programm wieder aufzurufen, um es dann damit schließlich auf den 
AVR brennen zu können.
(Firma: TravelRec.) Persönliche Seite #1684180
Lesenswert?

Lucas schrieb:
> was meinst du mit SP12-software, gibt es da eine eigene? ich mache das
> immer unter bascom avr.

Zumindest ist auf der SP12-Homepage davon die Rede. Wenn bascom das 
kann, umso besser.

Lucas schrieb:
> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das
> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem
> anderen programm wieder aufzurufen, um es dann damit schließlich auf den
> AVR brennen zu können.

Da wird Dir wohl nichts anderes übrig bleiben.
Gast #1684181
Lesenswert?

Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben
und testen.

Dazu muß man entweder die Kompilerdirektiven
$ASM

Hier das ASM Programm entragen

$END ASM

benutzen oder vor einen ASM-Befehl ein ! setzen.

MfG Paul
Gast #1684199
Lesenswert?

> Lucas schrieb:
>> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das
>> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem
>> anderen programm wieder aufzurufen, um es dann damit schließlich auf den
>> AVR brennen zu können.
>
> Da wird Dir wohl nichts anderes übrig bleiben.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!! 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
!!!!!!!!

nee im ernst, da muss es doch noch andere möglichkeiten geben.
das blöde ist, dass ich grade mal ein bisschen zeit für sowas übrig 
habe, wenn ich jetzt noch einen neuen brenner bestellen muss, ist der 
garantiert erst mitte nächster woche hier...

kann man nicht mit einem Mega8 einen Brenner basteln, der unter AVR 
Studio genutzt werden kann?
Gast #1684210
Lesenswert?

Paul Baumann schrieb:
> Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben
> und testen.
>
> Dazu muß man entweder die Kompilerdirektiven
> $ASM
>
> Hier das ASM Programm entragen
>
> $END ASM
>
> benutzen oder vor einen ASM-Befehl ein ! setzen.

ja, ich weiß, ist eigentlich auch eine coole sache.

allerdings reserviert (soweit ich gehört habe) Bascom vorab schon einige 
funktionen/variablen/register(!?, man korrigiere mich nötigenfalls!)
d.h., man hat dann immer auch Bascom-Ballast mit im Programm.

deshalb will ich lieber direkt in ASM einsteigen
Gast #1684305
Lesenswert?

kommt darauf an...

leider finde ich zum AVR-dropper keinen schaltplan.

ich vermute mal, der größere IC auf der platine ist der M8 und der 
kleinere ist ein MAX232...

gibt es das ganze nicht noch ein wenig kompakter?
immerhin benutze ich seit jahren erfolgreich SP12, bin also waschechter 
minimalist.
;)
(Firma: TravelRec.) Persönliche Seite #1684317
Lesenswert?

Naja - die ganz minimalen Teile unterstützt halt das AVR-Studio nicht...
Es gibt auch noch den hier: 
http://www.embedded-projects.net/index.php?page_id=135
Aber am aktuellsten sind und bleiben immer die Originalprogrammer. Wenn 
Du viel Zeit und Ausdauer hast, bau Dir einen Programmer, wenn Du am 
Wochenende etwas programmieren möchtest, bestell Dir einen AVR-ISP mkII.
Gast #1684359
Lesenswert?

habe grade gesehen, dass das AVR Studio auch Brenner für die COM-Dose 
akzeptiert.

Gibt es da nichts einfaches zum Nachbau? M8 und MAX232 habe ich 
vorrätig, mit Logik-ICs siehts leider bis auf ein paar Exemplare in 
meiner Bastelkiste eher bescheiden aus.

HV-Programmierung ist nicht erforderlich...
Gast #1684384
Lesenswert?

PS: auf die schnelle habe ich noch diesen beitrag hier gefunden:

Beitrag "AVR direkt aus AVR-Studio heraus brennen"
(mit parallelem ISP-Programmer und Ponyprog)


das geht ja schon stark in die richtung...  so ganz verstehe ich zwar 
noch nicht, wie es gemacht wird, aber das kommt hoffentlich noch
;)


ich frage mich außerdem, ob der dort angegebenen parallel-progger mit 
dem 74HC244 im grunde baugleich zum SP12-Progger ist (von wegen 
anschlussbelegung), muss ich später mal gucken.

hier der schaltplan von der 74HC244-version:
http://rumil.de/hardware/avrisp.html

hier rowalt:
http://www.rowalt.de/mc/avr/progd.htm

(falls jemand im vorfeld schon mal gucken möchte)
Gast #1684400
Lesenswert?

Lucas schrieb:
> ...baugleich zum SP12-Progger ist (von wegen
> anschlussbelegung), muss ich später mal gucken.

sieht nicht so aus:

       74hc244 (pp-pin)     rowalt (pp-pin)

sck          6                  2

res          9                  3

mosi         7                  9

miso         10                 11



(ohne gewähr)


der 74hc244-progger hat ausserdem noch zwei leitungen FN1 und FN2 (wofür 
auch immer die sein mögen...)
#1684869
Lesenswert?

Hallo,

unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn 
das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese 
das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst 
unproblematisch.
AVR-Studio speicher das HEX-File beim assemblieren in seinem 
Projektordner.
Also parallel die Programmersoftware offen lassen und das File aus 
diesen Ordner laden und brennen. Wenn Du jetzt was änderst, muß Du ja 
nach dem assembleiren nur die Programmersoftware nach vorn holen, daß 
gleiche File wieder neu laden und brennen.

Das habe ich jahrelang mit AVR-Studio und Ponyprog so gemacht...

Ansonsten eben USB-AVRLab o.ä zusammenlöten, den Mega8 mit Deinem SP12 
brennen und dann eben das Ding als MK2 aus AVR-Studio benutzen...

Gruß aus Berlin
Michael
Gast #1684924
Lesenswert?

Travel Rec. schrieb:
> Warum einfach, wenn man es auch kompliziert machen kann. Das
> widerspricht dem Thementitel zu 100%. Die nächste Frage lautet dann:
> "Mein AVR geht nicht mehr. Hat das etwas mit den Fuses zu tun? Was
> bedeutet eigentlich RSTDISBL?"
>
> Ich bin ´raus.

ich auch, zu kompliziert. morgen vormittag geh ich erst mal die enten im 
park füttern...

;)
Gast #1684937
Lesenswert?

Michael U. schrieb:
> Hallo,
>
> unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn
> das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese
> das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst
> unproblematisch.

Das habe ich mir eben auch überlegt.

Eigentlich geht es ja erst mal um ASM.

Das mit dem "zwei Programme gleichzeitig benutzen" ist eine gute Idee!!!

Ansonsten habe ich noch den AVRISP MKII entdeckt, der braucht nur einen 
M8 und ein bisschen Hühnerfutter, das aber für später.



Ok, wie bringe ich denn mit dem AVR-Studio die sprichwörtliche LED zum 
Blinken?
Gibt es irgendwo eine Anleitung, wie man im AVR-Studio die ganzen 
Fenster unter Kontrolle bekommt und was man wo wie eingeben muß?

Das Studio hat bei mir natürlich erst mal gemeckert, dass kein 
Programmer anwesend ist...
Gast #1685035
Lesenswert?

So, habe jetzt im AVR Studio den Simulator eingeschaltet und einen Mega8 
ausgewählt.

Dann folgendes Programm eingegeben, es soll ein Brummen (Rechteck) an 
Port B, Bit 0 ausgeben:



.equ c1 = 0 ; Bestimmt die Tonhöhe
  sbi DDRB,0 ; Portbit ist Ausgang
Loop:
  sbi PORTB,0 ; Portbit auf high
  ldi R16,c1
Loop1:
  nop
  nop
  nop
  nop
  nop
  dec R16
  brne Loop1
  cbi PORTB,0 ; Portbit auf low
  ldi R16,c1
Loop2:
  nop
  nop
  nop
  nop
  nop
  dec R16
  brne Loop2
  rjmp Loop




Nach dem Compilieren kommen folgende Fehlermeldungen:

E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(2): 
error: Undefined symbol: DDRB
E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(4): 
error: Undefined symbol: PORTB
E:\Dokumente und Einstellungen\Kleimann\Eigene 
Dateien\zulu\zulu.asm(14): error: Undefined symbol: PORTB

Die Begriffe „DDRB“ und  „PORTB“ (er)kennt er wohl nicht.

Was kann/muss man machen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren