PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Buch zur Assembler Programmierung



Zwerwelfliescher
03.07.2009, 15:03
Hi,
ich habe letzt das Lernpacket Microcontroler gekauft und habe das beiligende Buch durch. Da sich das Buch nur größtenteils nur auf den ATtiny13 bezieht, suche ich nach einem empfelenswerten Buch zur Assembler Programmierung. Ich Programmiere Atmel Controler.
Wäre toll wenn es da ein passendes Buch gibt.

MFG

Flexxx

robin
04.07.2009, 09:23
HI,

ist zwar kein buch, aber auf

http://www.mikrocontroller.net/articles/AVR-Tutorial

sind die ganzen basics mit nem mega8 erklärt.

mfg Robin

Zwerwelfliescher
04.07.2009, 10:37
Die Internetseite kenne ich schon. Ich suche dehalb ein Buch, da ich sehr viel Unterwegs bin und sehr wenig Internetzugang habe.
Trotzdem Danke

MFG Flexxx

oberallgeier
04.07.2009, 10:48
... möchte in die Programmierung von Atmel Controlern einsteigen ... den Attiny13 programmieren ...
... Lernpacket Microcontroler gekauft und habe das beiligende Buch durch ...Wenn ich diesen Thread und dazu Deinen anderen lese (https://www.roboternetz.de/phpBB2/viewtopic.php?t=48746) , siehe oben, erstes Zitat, bist Du in etwa einer Woche durch "dieses Buch durch" und hast hoffentlich auch das eine oder andere Experiment gemacht. Dazu hatte ich einen oder zwei Monat gebraucht - und danach noch immer nicht alles verstanden. Nun ist es sicher möglich, dass Du wesentlich schneller begreifst als ich - aber soooo viel Unterschied glaub ich nicht wirklich.

Fazit: wenn Du (so ziemlich) alle Experimente in dem Buch aufbaust (ich meine nicht das Buch durch"machen" - damit hast Du ja offenbar nicht viel gelernt) und sorgfältig überlegst, was Du da machst, was geschieht, und welche Aktionen durch die be-/ge-schriebenen Befehle ausgelöst werden, dann verstehst Du schon mal ne ganze Menge an Assembler.

Weiteres Vorgehen: Empfehlenswert ist es, danach das AVRStudio mit WINAvr zu installieren (wenn Du Windows fährst). Da steht Dir ein prächtiger Assembler zur Verfügung, der eine SEHR ausführliche Hilfefunktion hat. Damit kannst Du die Codebeispiele durchgehen und sie wirklich verstehen lernen, zumal diese Beispiele im Simulator von AVRStudio Schritt für Schritt nachzuvollziehen sind und dabei alle möglichen Registeränderungen anzeigen.

Auszug aus der Hilfefunktion des AVRStudio:

RETI - Return from Interrupt

Description:
Returns from interrupt. The return address is loaded from the STACK and the global interrupt flag is set.

Note that the status register is not automatically stored when entering an interrupt routine, and it is not restored when returning from an interrupt routine. This must be handled by the application program. The stack pointer uses a pre-increment scheme during RETI.


Operation:

(i)PC(15:0) ← STACKDevices with 16 bits PC, 128K bytes program memory maximum.

(ii)PC(21:0) ← STACKDevices with 22 bits PC, 8M bytes program memory maximum.


Syntax: Operands: Program Counter: Stack

(i) RETI None See Operation SP ← SP + 2 (2 bytes, 16 bits)

(ii) RETI None See Operation SP ← SP + 3 (3 bytes, 22 bits)


16-bit Opcode:

1001 0101 0001 1000


Status Register (SREG) and Boolean Formula:
I T H S V N Z C
1 - - - - - - -


I: 1

The I flag is set.


Example:
...
extint: push r0 ; Save r0 on the stack
...
pop r0 ; Restore r0
reti ; Return and enable interrupts


Words: 1 (2 bytes)

Cycles: 4 devices with 16-bit PC

5 devices with 22-bit PC
Die geschriebenen und getesteten Beispiele kannst Du danach assemblieren und die *hex-Files mit dem Programm LPmicro ISP aus dem Lernpaket in den Tiny13 laden - und laufen lassen.


... Von der Hardware zu urteilen wird wohl ein Bootloader benutzt ...Jein. Für die ersten Schritte fährt man mit einem Bootloader, der zusammen mit einem ausgefuchsten Experimentierprogramm geladen wird (werden kann). Für eigene Programme ist eine Flashfunktion vorgesehen, die wird mit der GLEICHEN Hardware, ohne Zusätze, von LPmicro ISP erledigt und wirft dabei auch den Bootloader raus *gggggg*. (Der Bootloader mit Experimentierprogramm kann jederzeit einfach mit einer "Initialisierung" wieder eingespielt werden.)

Zum Lernen von Assembler finde ich dieses Paket eine sehr gute und sehr übersichtliche Zusammenstellung, die mir eine gründliche Einarbeitung erlaubt hat. Das kleine Board hatte ich später immer wieder für manche Tests (auf Grundlage der Beispiele im Buch) in Verwendung. Danach hatte ich recht bald mit eigenen Platinen (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=331177#331177) und auch mit manchen eigenen Projekten (https://www.roboternetz.de/phpBB2/viewtopic.php?p=390196#390196) angefangen. In meiner Anfangszeit hatte ich dieses Paket im Urlaub mit - nur die Platine mit Kabel und wenige Kleinteile, das Buch und ein Notebook. Das lief am Strand und abends unter den Palmen auf der Terrasse . . . . . . *ggggg*.


Die Internetseite kenne ich schon ...*gggg* aber offenbar nicht die Tatsache, dass man solche Seiten komplett auf (s)einem Computer speichern und später offline durchgehen kann. Ich glaube Du musst noch einiges lernen.

Nachtrag: Dringend angeraten ist es, die zwei Seiten Instruction Set Summary, z.B. S. 158 + 159 aus dem ATtiny13-doc 2535I–AVR–05/08 auszudrucken und bei der Arbeit griffbereit zu halten. Zumindest für Leute wie mich, die kein fotografisches Gedächtnis haben.