Core und Speicher des ATmega16
|
|
|
- Dörte Straub
- vor 9 Jahren
- Abrufe
Transkript
1 Ausarbeitung Core und Speicher des ATmega16 Verfasst von: Daniel Dünker Quellen:
2 Inhaltsverzeichnis 1.Allgemeines (S. 3) 2.Die Alu (S. 4) 3.Das Statusregister (S. 4-6) 4.Der Stack (S. 7) 5.Interrupts (S. 8) 6.Die Register (S. 9) 7.Der Speicher Flash Speicher (S. 10) SRAM (S. 11) EEPROM (S. 12) Register (S ) Schreibvorgang (S. 14)
3 1. Allgemeines Die Harvard Architektur Der Mikrocontroller verfügt über eine so genannte Harvard-Architektur, was bedeutet, dass der Speicher für den Programmcode und der Arbeitsspeicher getrennt sind. Dadurch entstehen deutliche Vorteile, wie die Tatsache, dass ein Programm sich nicht selber verändern kann und Programmcode und Daten gleichzeitig gelesen werden können. Ein anderer Vorteil, der bei dem Controller auch genutzt wird ist die Möglichkeit, die Befehlswortbreite und Datenwortbreite voneinander unabhängig zu gestalten. Allerdings ist man durch diese Aufteilung des Speichers in seiner Nutzung etwas eingeschränkter, was aber keineswegs so viel gewichtet wird wie die oben genannten Vorteile. Die Arbeitsregister Dem Programmierer stehen insgesamt 32 8-Bit Arbeitsregister zur Verfügung, mit denen er frei arbeiten kann. Speicher Insgesamt stehen die folgenden drei Speicherarten zur Verfügung: Flash Speicher SRAM EEPROM Blockschaltbild der AVR MCU Architektur:
4 2. Die ALU Die ALU des Mikrocontrollers bietet 3 verschiedene Arten von Operationen: arithmetische,logische und und bit-funktionen. Sie verfügt über eine direkte Verbindung zu allen 32 Arbeitsregistern der CPU. Arithmetische Operationen zwischen Registern oder zwischen einem Register und einem Absolutwert werden innerhalb eines Taktzyklus ausgeführt. 3. Das Statusregister (SREG) Das Statusregister ist ein 8-Bit Register, das Informationen zu vorhergegangen arithmetischen Operationen enthält. Anhand dieser Informationen ist es möglich bedingte Sprünge abhängig von diesen Operationen durchzuführen. Beispieloperationen: Mnemonic Bedeutung Abhängigkeit BREQ Branch if Equal Falls Zeroflag=1 BRLO Branch if Lower Falls Carryflag=1 BRCS Branch if Carry set Falls Carryflag=1 Aufbau von SREG: ldi r21, 0xA loop: dec r21 breq ende rjmp loop ende: 7 I Global Interrupt Enable 6 T Bit Copy Storage 5 H Half Carry Flag 4 S Sign Bit ;0xa in r21 laden ;r21 um eins verringern ;Falls ZeroFlag=1 zu ende springen ;springe zu loop 3 V Two's Complement Overflow Flag 2 N Negative Flag 1 Z Zero Flag 0 C Carry Flag
5 Bit 7 - I:Global Interrupt Enable Das I-Bit wird genutzt um Interrupts global abzuschalten. Damit Interrupts stattfinden können muss dieses Bit auf 1 gesetzt werden. Nachdem ein Interrupt einsetzt setzt die Hardware das Bit auf 0, um innerhalb der Interruptroutine keine weiteren Interrupts auszuführen. Falls der Programmierer dies dennoch wünscht muss er innerhalb der Interruptroutine das Bit mittels des Befehls RETI wieder auf 1 setzen. Bit 6 - T: Bit Copy Storage Die beiden Instruktionen BLD (Bit LoaD) und BST (Bit STore) nutzen das T-Bit als Zwischenspeicher für das Kopieren von Bits. bst r20,1 bld r21,1 ;Bit 1 von r20 im T-Bit speichern ;Bit 1 in r21 mit dem Wert des T-Bits belegen Bit 5 - H: Half Carry Flag Das Half Carry Flag wird im Falle eines halben Carries in einigen arithmetischen Operationen gesetzt und wird für BCD Arithmetik benutzt. Bit 4 - S: Sign Bit Das Sign Bit stellt immer das Ergebnis eines exklusiven Oders das auf das V-Bit und das N-Bit angewandt wird. Bit 3 - V: Two's Complement Overflow Flag Wird im Falle eines Überlaufs bei der Zweierkomplementarithmetik gesetzt, beispielsweise von der Instruktion NEG ldi r20,0x80 neg r20 brvs ziel neg r20 ziel: ;0x80 nach r20 ;zweierkomplement von r20 bilden ;springe falls overflowflag gesetzt ;wird nie ausgeführt Bit 2 - N: Negative Flag Wird gesetzt, falls das Ergebnis einer arithmetischen oder logischen Operation negativ ist. ldi subi brmi subi ziel: r20,0x80 r20,0x81 ziel r20,0x01 ;0x80 nach r20 ;0x81 von r20 abziehen ;springe falls negativflag gesetzt ;wird nie ausgeführt
6 Bit 1 - Z: Zero-Flag Das Zero-Flag wird gesetzt, falls das Ergebnis einer arithmetischen oder logischen Operation 0 beträgt. ldi r21, 0xA loop: dec r21 breq ende rjmp loop ende: ;0xa in r21 laden ;r21 um eins verringern ;Falls ZeroFlag=1 zu ende springen ;springe zu loop Bit 0 - C: Carry-Flag Das Carry-Flag wird gesetzt, falls es bei einer arithmetischen oder logischen Operation zu einem Überlauf kommt. ldi r21, 0xFF ldi r20, 0x01 add r20,r21 brcs ziel inc r20 ziel: ;0xFF in r21 laden ;0x01 in r20 laden ;r20 und r21 addieren ;springe falls überlauf ;wird nie ausgeführt
7 4. Der Stack Der Stack wird über den SP (Stack-Pointer) im SRAM initialisiert. Er wird genutzt um Daten zwischenzuspeichern und als Möglichkeit bei dem Aufruf von Subroutinen die Übergabeparameter sowie die Rücksprungadresse zu speichern. Bei der Initialisierung muss darauf geachtet werden, dass der Wert in SP größer als $60 sein muss. Für die Arbeit mit dem Stack gibt es grundsätzlich zwei Operationen: PUSH und POP. Push schiebt den Inhalt eines Registers auf den Stack, der SP wird dabei um 1 verringert. Pop holt einen Wert vom Stack und speichert ihn in einem Register, der Sp wird dabei um 1 vergrößert, der Stack wächst also während des Speicherns nach unten. ldi temp,low(ramend) out SPL,temp ldi temp,high(ramend) out SPH,temp ldi r20,0x0f push r20 pop r21 ;SP initialisieren ;r21 ist nun 0x0F Wie man im obigen Beispielcode erkennen kann ist der SP ein aus zwei Registern zusammengesetztes 16-Bit Register, das im IO-Space zu finden ist.
8 5. Interrupts Interrupts sind Unterbrechungen des normalen Programmflusses, ausgelöst beispielsweise durch einen Benutzer, der eine Tastatur betätigt. Das Hauptprogramm wird in diesem Falle unterbrochen und die Interruptroutine abgearbeitet. Interrupts werden generell über das Global Interrupt Enable bit an- und abgeschaltet. Zudem besitzt jeder Interrupt selber nochmal ein eigenes Interrupt Enable bit, das gesetzt sein muss, damit der Interrupt stattfindet. Im Falle eines Interrupts wird zunächst die aktuelle Operation durchgeführt, dann zur Interruptroutine gesprungen. Daraufhin wird das I-Bit auf 0 gesetzt, um weitere Interrupts während der Abarbeitung der Routine zu verhindern. Bei Interrupts, die während einer bereits laufenden Interruptroutine ausgelöst werden wird das jeweilige Flag gesetzt und diese ausgeführt, nachdem die aktuelle Routine abgearbeitet ist, dies geschieht in Reihenfolge je nach Priorität. Nachdem die Routine abgearbeitet wurde und das Hauptprogramm weiterläuft wird zunächst mindestens ein Befehl des Hauptprogramms abgearbeitet, bevor wieder in eine Interruptroutine gesprungen wird.
9 6. Die Register Der AVR-Mikrocontroller verfügt über 32 8-Bit Arbeitsregister, wobei die oberen 6 nochmal eine gesonderte Rolle spielen. Diese Arbeitsregister zeichnen sich durch einen Taktzyklus Zugriffszeit aus und sind nicht nur über ihren jeweiligen Namen ansprechbar, sondern zudem noch als die ersten 32 Adressen im SRAM verfügbar. Die Register R26 bis R31 bilden jeweils zu zweit ein 16bit Registerpaar, die genutzt werden können um Speicher im SRAM zu addressieren, also auch die dort abgebildeten 32 Register (obwohl diese nicht wirklich im SRAM vorhanden sind). ldi r16,0x01 ldi XL,0x10 ldi XH,0x00 ld r17,x ; 0x01 nach r16 ;X zeigt jetzt auf r16 ($10) ;r17 = 0x01
10 7. Der Speicher Flash Speicher Der ATmega16 verfügt über einen 16k großen Flashspeicher, in dem die Programme abgelegt werden. Da alle AVR-Instruktionen entweder 16 oder 32 Bit lang sind, ist dieser Speicher in 8192 Zellen von jeweils 16Bit aufgeteilt. Somit beträgt die höchste zu Adresse innerhalb dieses Speichers 2^13-1, worauf begründet der PC (Programmcounter) eine Größe von genau 13 Bit hat. (8191d = b) Um die Sicherheit der Software zu erhöhen ist der Speicher in eine Boot Section und eine Application Section aufgeteilt. Lediglich der Programmcode, welcher in der Boot Section abgelegt ist hat die Befähigung den Flashspeicher zu beschreiben. Dieser Speicher hat eine Lebensdauer von mindestens Schreib- und Löschzyklen.
11 SRAM Der SRAM des ATmega16 ist sozusagen sein Arbeitsspeicher, sollte man den Mikrocontroller mit einem Personal Computer vergleichen wollen. Die Größe des SRAM beträgt 1 Kilobyte wobei mehr als 1024 Byte adressiert werden können, da die ersten 96 Adressen nicht wirklich zum SRAM gehören, sondern lediglich darin abgebildet werden. Die ersten 32 Byte bilden die Register File, die darauffolgenden 64 sind die I/O Register. Ab der Adresse $60 beginnt der interne SRAM, in den dann auch der zuvor erwähnte Stackpointer initialisiert werden kann. $0000-$001F: Register File $0020-$005F: I/O Register $0060-$045F: Interner SRAM
12 EEPROM Der EEPROM (Electronically Erasable Programmable Read Only Memory) des ATmega16 ist 512 Byte groß und befindet sich in einem seperaten Datenbereich. Der EEPROM kann von Programmen genutzt werden, um Daten auch über den Neustart des Controllers hinaus zu speichern. Der Prozess des Speicherns ist allerdings etwas fehleranfällig, weshalb während dieses Vorgangs die Interrupts abgeschaltet werden müssen. Insgesamt hat dieser Speicher eine Mindestlebensdauer von Schreib- und Löschzyklen. EEPROM-Register Für den Zugriff auf das EEPROM werden spezielle Register zur Verfügung gestellt, über die sich das Lesen und Schreiben des EEPROMs steuern lässt. Die EEPROM-Register EEARH/EEARL Address Register EEDR Data Register EECR Control Register Bits 7..4: Reserved (0) Bit 3 : Ready Interrupt Enable (EERIE) Bit 2: Master Write Enable (EEMWE) Bit 1: Write Enable (EEWE) Bit 0: Read Enable (EERE) Das EEPROM Adressregister (EEARH/EEARL) Bits Bedeutung Diese Bits werden für die Adressierung im EEPROM nicht benötigt und sind daher immer auf 0 gesetzt Diese Bits werden genutzt um die 512 Byte des EEPROM zu adressieren.
13 Das EEPROM Datenregister (EEDR) Beim Schreibvorgang wird der Inhalt dieses Registers an das durch EEARH:EEARL adressierte Byte geschrieben. Beim Lesevorgang hingegen wird das Byte an EEARH:EEARL im EEPROM in dieses Register geladen. Das EEPROM Controlregister (EECR) Bits Bedeutung 7..4 Diese Bits sind im ATmega16 immer EERIE EEPROM Ready Interrupt Enable Wenn dieses Bit auf 1 gesetzt ist, sowie Interrupts global eingeschaltet wird durchgängig der Interrupt ausgelöst solange EEWE 0 ist. 2 - EEMWE EEPROM Master Write Enable Dieses Bit muss auf 1 gesetzt werden, damit das Schreiben durch das Setzen von EEWE auf 1 durchgeführt wird. Nach 4 Taktzyklen wird EEMWE automatisch zurück auf 0 gesetzt. 1 - EEWE EEPROM Write Enable Wenn EEMWE 1 ist und dieses Bit auf 1 gesetzt wird, wird der Schreibvorgang in den EEPROM gestartet. 0 - EERE EEPROM Read Enable Das setzen dieses Bits auf 1 bewirkt, dass das durch EEAR adressierte Byte im EEPROM in EEDR eingelesen wird.
14 Der EEPROM Schreibvorgang Das EEPROM kann nicht programmiert werden, während die CPU auf den Flash schreibt! 1.) Zunächst muss das Byte, an das im EEPROM geschrieben werden soll über EEAR adressiert werden und das zu schreibende Datum in EEDR geladen sein. 2.) Um den Schreibvorgang möglichst sicher zu gestalten müssen Interrupts zuvor abgeschaltet werden. 3.) Bevor EEMWE auf 1 gesetzt wird muss zunächst geprüft werden, ob EEWE auf 0 gesetzt ist und somit ein möglicher bereits vorhergegangener Schreibvorgang bereits abgeschlossen. 4.) Innerhalb von 4 Taktzyklen muss nach EEMWE das EEWE Bit auf 1 gesetzt werden, da EEMWE nach 4 Taktzyklen automatisch gecleared wird. Aus diesem Grund müssen Interrupts abgeschaltet werden,da ein dazwischen einsetzender Interrupt bewirken würde, dass EEMWE gecleared würde bevor EEWE gesetzt werden kann und somit das Schreiben des EEPROMS nicht stattfinden kann. Nachdem EEWE auf 1 gesetzt wurde wird die CPU für 2 Taktzyklen angehalten. Der folgende Beispielcode kopiert 10 Byte vom SRAM, beginnend ab Adresse $60 in den EEPROM, beginnend ab Adresse $0000 cli ldi r19,0x0a ldi XL,0x60 ldi XH,0x00 ldi r17,0x00 ldi r18,0x00 eeprom_write: sbic EECR,EEWE rjmp eeprom_write ld r16,x out EEARH, r18 out EEARL, r17 out EEDR, r16 sbi EECR,EEMWE sbi EECR,EEWE inc XL inc r17 dec r19 brne eeprom_write sei ; Interrupts abschalten ;Adressinitialisierung ;warten auf Abschluss eines vorhergehenden Schreibvorgangs ;Datum aus dem SRAM laden ;Adressierung im EEPROM ;Byte zur Ausgabe schreiben. ;Start des Schreibvorgangs ;Adressen anpassen ;Laufvariable um eins verringern ;Falls Zeroflag nicht gesetzt Schleife fortsetzen ;Interrupts einschalten
Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7
1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht
Sprungbefehle und Kontroll-Strukturen
Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter
Einführung in AVR Assembler
Einführung in AVR Assembler Dennis Fassbender Institut für Technik Autonomer Systeme (LRT8) Universität der Bundeswehr München 09042014 Was ist Assembler? Low-level-Programmiersprache Erlaubt direkten
Assembler-Unterprogramme
Assembler-Unterprogramme Rolle des Stack Prinzipieller Ablauf Prinzipieller Aufbau Unterprogramme void main(void) int sub(int i) { { int i,k; return i*2; i = sub(13); } k = sub(14); } Wie macht man das
Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur
0. Assembler-Programmierung Datenstrukturen des ATMega32 Literatur mikrocontroller.net avr-asm-tutorial.net asm Alles über AVR AVR-Assembler-Einführung Assembler AVR-Aufbau, Register, Befehle 2008: ouravr.com/attachment/microschematic/index.swf
B1 Stapelspeicher (stack)
B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen
Atmel AVR für Dummies
Atmel AVR für Dummies [email protected] 29.12.2005 Übersicht 1 Hardware Kurzvorstellung Atmega8 Programmierkabel (Eigenbau vs. Kommerzlösung) Alternative: Bootloader (Programmieren via rs232) Software Speicher
Arithmetische und Logische Einheit (ALU)
Arithmetische und Logische Einheit (ALU) Enthält Blöcke für logische und arithmetische Operationen. n Bit Worte werden mit n hintereinander geschalteten 1 Bit ALUs bearbeitet. Steuerleitungen bestimmen
Zusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl
Name: ES2 Klausur Thema: ARM Name: Punkte: Note:
Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel
Schritt Aktion Erläuterung 1 UBRR auf 25 setzen Baudrate auf 9600 TXEN-Bit von UCSRB auf 1 setzen
Das Attiny-Projekt Unterprogramme in Assembler 1 Unterprogramme Unterprogramme haben wir schon im Zusammenhang mit BASCOM kennen gelernt. Auch Assemblerprogramme können durch Unterprogramme strukturiert
1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen
.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen.7. Aufgabe Die beiden LEDs sollen abwechselnd blinken. Mit der bisherigen Lösung flackern sie nur (Beispiel: blink0.asm):. include /usr/share/avra/m8def.
Einführung in AVR-Assembler
Einführung in AVR-Assembler Easterhack 2008 Chaos Computer Club Cologne Stefan Schürmans, BlinkenArea [email protected] Version 1.0.4 Easterhack 2008 Einführung in AVR-Assembler 1 Inhalt Vorstellung
Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -
Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen
Datenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
AVR-Mikrocontroller in BASCOM programmieren, Teil 2
[email protected] 1 AVR-Mikrocontroller in BASCOM programmieren, Teil 2 13. Interrupts 13.1 Externe Interrupts durch Taster Wenn Taster mittels Polling abgefragt werden, wie in Teil 1 beschrieben,
Das Attiny-Projekt Der Bootloader 1
Das Attiny-Projekt Der Bootloader 1 Der Bootloader Bei unserer Attiny-Platine werden die Programme über die serielle Schnittstelle übertragen. Grundsätzlich wäre es möglich, hierzu auf die im Attiny-Mikrocontroller
Lösungen zum Kurs "Mikrocontroller Hard- und Software
Lösungen zum Kurs "Mikrocontroller Hard- und Software Gerhard Schmidt Kastanienallee 20 64289 Darmstadt http://www.avr-asm-tutorial.net Lösung Aufgabe 2 Aufgabe 2 sbi DDRB,PB0 2 Takte sbi PORTB,PB0 2 Takte
Grundlegende Programmiertechniken
Das Attiny-Projekt Grundlegende Programmiertechniken 1 Grundlegende Programmiertechniken Es gibt zwei Aspekte der Assemblerprogrammiertechnik, die als grundlegend angesehen werden können: Zum Einem der
Teil III: Wat macht ene Mikrokontroller?
Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil III: Wat macht ene Mikrokontroller?
Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht
Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen
Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer
Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich
8. Beschreibung des Prozessors MSP 430
8. Beschreibung des Prozessors MSP 430 8.1 Die Eigenschaften des MSP 430 8.2 Die Register des MSP 430 8.3 Der Aufbau des Speichers 8.4 Interrupts 8.5 Der Watchdog Programmierkurs II Wolfgang Effelsberg
Datenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:
2.1 Atmega-Peripherie/Interrupts
2.1 Atmega-Peripherie/Interrupts 2.1.1 Situation Während LED2 fortlaufend blinkt, soll LED2 jederzeit sofort durch Tastendruck von T1 eingeschaltet werden können. Dazu muss man im Programm regelmäÿig nachsehen,
32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78
32 Bit Konstanten und Adressierung Grundlagen der Rechnerarchitektur Assembler 78 Immediate kann nur 16 Bit lang sein Erinnerung: Laden einer Konstante in ein Register addi $t0, $zero, 200 Als Maschinen
Use of the LPM (Load Program Memory)
Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Instruction with the AVR Assembler Load Constants from Program Memory Use of Lookup Tables The LPM instruction is included in the
2
TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts
Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös
Atmega Interrupts Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Inhaltsverzeichnis Vorbereitung Was Sind Interrupts Interruptvektoren Software Interrupts Hardware Interrupts Quellen 2 Vorbereitung Rechner
Labor für Prozessregelung und Rechnerverbund Anleitung zum WinMaster ( Dipl.-Ing. Peter Tarkany) Beschreibung: Dipl.-Ing.
Labor für Prozessregelung und Rechnerverbund Anleitung zum WinMaster ( Dipl.-Ing. Peter Tarkany) Beschreibung: Dipl.-Ing. Harald Swoboda 1 Einleitung...2 2. Installation und Programmstart...3 3. WinMaster
Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]
2.1.2 Behandlung von Unterbrechungen (Interrupts) Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S. 582-585] t 1 : MAR (PC) t 2 : MBR Memory[MAR] PC
Datenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
Datenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:
Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
Grundlagen der Rechnerarchitektur. MIPS Assembler
Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32
Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9
Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere
Teil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer
Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche
Grundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS
Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler
Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler 1. Oktober 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Wiederholung / Diskussion 1.
9. Assembler: Der Prozessor Motorola 68000
9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine
9. Assembler: Der Prozessor Motorola 68000
9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine
Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:
Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel
Die Mikroprogrammebene eines Rechners
Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.
Kontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
4.0 Der Atmel AT89LPx052 Mikrocontroller
4.0 Der Atmel AT89LPx052 Mikrocontroller Die ersten beiden Derivate der Atmel LP Familie sind der AT89LP2052 und der AT89LP4052 in verschiedenen Gehäusevarianten mit 2 Kbytes bzw. 4 KBytes Flash. Gegenüber
Kontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
Übung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim [email protected] 20.03.09 4-1 Heutige große Übung Ankündigung
Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9
Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Die HAM. Die Hypothetische Akku-Maschine
Die HAM Die Hypothetische Akku-Maschine Inhaltsverzeichnis 1 Die Ham 1.1 Überblick 1.2 Hardware Funktion der HAM 1.3 Der Assembler-Befehlssatz Addition zweier Zahlen 1.4 Der HAM-Editor Addition zweier
Der Simulator wird im Quelltext bereitgestellt und benutzt das FLTK-Framework.
AVR-Simulator https://www.mikrocontroller.net/topic/420097 Das Programm soll Anfängern unter Linux helfen, die ersten Schritte in der Assemblerprogrammierung für AVR zu bewältigen, ohne in teure und aufwändige
1 Eigenes zu Interrupts und...
1 Eigenes zu Interrupts und... Abfragebetrieb = polling Unterbrechungsbetrieb 1. Interrupt = Unterbrechung 2. IRQ = Interrupt-Request = Interrupt-Anforderung = Unterbrechungsanforderung 3. ISR = Interrupt-Service-Routine
Teil 2: Rechnerorganisation
Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung
Assembler am Beispiel der MIPS Architektur
Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.
Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel
Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle
Mikroprozessortechnik Grundlagen 1
Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes
Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register
Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control
E Mikrocontroller-Programmierung
E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden
EEPROM Lesen/Schreiben über SPI-Bus
EEPROM Lesen/Schreiben über SPI-Bus Experiment EEPROMtest 6 A.Schultze / DK4AQ 15.06.2013 Was ist ein EEPROM? EEPROM = Electrical Erasable Programmable Read Only Memory Ein EEPROM kann elektrisch geschrieben
Prinzipieller Aufbau und Funktionsweise eines Prozessors
Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg
Technische Informatik 1 - HS 2017
Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 8 Datum: 30. 11. 1. 12. 2017 In dieser Übung soll mit Hilfe des Simulators WinMIPS64 die
Von-Neumann-Architektur
Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..
MOP: Befehlsliste für den Mikrocontroller 8051
Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel
Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)
VM/AVR SIMPLE & STUPID 1 Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid) Stand: 26. 1. 2010 Zweck: Elementare Demonstration der Mehrprogrammausführung auf Grundlage
Fachbereich Medienproduktion
Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen
Gerhard Paulus [email protected]
-------------------------------------------------------------- Assembler ab 0 und 1 8.10.2002 -------------------------------------------------------------- Gerhard Paulus [email protected] Copyright (c)
Kap.3 Mikroarchitektur. Prozessoren, interne Sicht
Kap.3 Mikroarchitektur Prozessoren, interne Sicht Kapitel 3 Mikroarchitektur 3.1 elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung (zur Realisierung der Befehlsabarbeitung
Computersysteme. Stacks Anwendung in der Assembler-Programmierung
Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart
Unterprogramme mittels Stack (Forts.)
Unterprogramme mittels Stack (Forts.) gleiches Beispiel mit direkter Übergabe aller Parameter (8-Bit Wert a, 16-Bit Wert b, 16-Bit Ergebnis) durch call by value auf Stack: LDB a * Lade 8-Bit Wert a PSHS
Technische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger E-Mail: www: [email protected] www.matthias-draeger.info/lehre/sose2010ti2/ tinyurl.com/sose2010ti2 Zuletzt bearbeitet:
1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige
1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige 1.9.1 Idee Bei der Programmentwicklung braucht man es ab und zu, dass man sich an bestimmten Stellen des Programms Variablenwerte anzeigen lässt. Bei
Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling
Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Aufgabe 1: Sie haben in der Vorlesung einen hypothetischen Prozessor kennen
Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen.
Interrupttechnik mit dem ATmega32 Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen. Aufgrund einer Interruptanforderung wird das laufende Programm unterbrochen
Befehlssatz der Mikrocontroller der 51er -Familie
Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen
Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität
Befehlssatz der Mikrocontroller der 51er -Familie
Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher
Kap 4. 4 Die Mikroprogrammebene eines Rechners
4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).
Mikrocomputertechnik
Mikrocomputertechnik Thema: CPU Timing XC888 und Interrupt System des XC888 und Timer/Counter 0 und 1 -Im InterruptBetrieb - CPU Timing XC888 CPU Timing XC888 Befehl Befehl Befehl Befehlszyklus Befehlszyklus
Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren
Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren der beiden Registerwerte $t1 und $t2 in einem Zielregister
Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
Teil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
1 Assembler. 2 LED-Steuerung
Inhaltsverzeichnis Inhaltsverzeichnis... 1 1 Assembler... 2 2 LED-Steuerung... 2 3 Taster Abfrage ( Port I/O)... 3 3.1 Zahlensysteme... 3 3.2 Ausgabe... 4 3.2.1 Assembler-Sourcecode... 4 3.2.2 Assemblieren...
Forth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort
Vokabular für Attiny2313-Forth - 1 - Forth.voc Forth-Vokabular Stand: 01.11.2012 A: Assembler-Wort F: Forth-Wort C: Compiler-Wort. A gibt TOS auf Port B aus; (Datenrichtungsbits von Port B werden alle
