µController

Home > Preview

The flashcards below were created by user Sabbi on FreezingBlue Flashcards.


  1. Aus welchen grundsätzlichen Bausteinen besteht eine Informationsverarbeitungsanlage und welche Aufgaben haben diese?
    • Image Upload
    • erfassen, speichern, verarbeiten, übertragen und Ausgabe von Informationen
  2. Geben Sie eine Klassifikation von Halbleiter-Speichern an. Welche Kriterien wählen Sie zur Unterscheidung?
    • Image Upload
    • -flüchtig: verlieren Unformationen wenn Strom abgeschaltet
    • -ROM = Read Only Memory
    • -OPT = One Time Programmable
    • -PROM=Programmable Read Only Memory
    • -EPROM= Ereasable PROM
    • -EEPROM= Electrical Ereasable PROM
    • -SRAM= static Random Access Memory
    • -DRAM= dynamic Random Access Memory
  3. Worin besteht der Unterschied zwischen einer "von Neumann" und einer "Harvard"-Architektur? Welche Konsequenzen hat das für den Programmierer?
    • Harvard:
    •   -Getrennter Speicher für Programm und Daten
    •    ↪höhere Speicherbandbreite
    •    ↪Komplexes Programmiermodell(unterschiedliche Speicher berücksichtigt)
    •   -Programme können
    • nicht dynamisch durch den Prozessor in den Speicher geladen werden

    • Von Neumann:
    •   -Gemeinsamer Speicher für Programm und Daten
    •    -mehrere Programme können geladen werden
    •   -Schließt den Einsatz unterschiedlicher Speichertechnologien nicht aus (non volatile für Programme und Konstanten, volatile für ladbare Daten und Programme)
    •   -RAM kann dynamisch genutzt werden da keine
    • festen Grenzen bestehen
  4. Nennen Sie wesentliche Unterschiede zwischen einem Mikrocontroller wie dem MSP430 und einem Prozessor, der in einem PC verbaut wird.
    • Mikrocontroller:
    • sind meistens auf die Steuerung des jeweiligen System konzipiert, embedded (Singleboard)
    • Prozessor aus PC:
    • können vielfach eingesetzt werden,deutlich höhere Geschwindigkeit, Multicore
  5. Wie viele verschiedene Zeichen werden bei der binären Informationscodierung verwendet und wie werden diese üblicherweise technisch repräsentiert?
    • 2 Zeichen:
    • ↪ High (1) 3,3V oder 5V
    • ↪Low (0) 0V
  6. Woran erkennt ein Rechner, ob eine Bitkette eine Zweierkomplementzahl
    oder eine vorzeichenlose Dualzahl darstellt?
    • Erkennt er nicht!
    • ↪ liegt in der Verantwortung des Programmierers die Zahl in richtiger Weise zu verarbeiten!
    • (höchstes Bit eine 1 im Zweierkomplement)

  7. Ein technisches Gerät kann 72 verschieden Zustände annehmen. Wie
    viele Bit benötigen Sie minimal, um diese binär zu kodieren, dass
    jedem Zustand ein anderes Bitmuster zugeordnet wird?
    • Es werden 7 Bit gebraucht: 27=128
    • (26=64 ⇾ zu wenig!)
    • chart?chf=bg,s,00000000&cht=tx&chl=log_%7B2%7D(x)%3D%20n%5Bin%20Bit%5D&chs=278x44
  8. Was versteht man unter einem Decoder?
    • Image Upload
    • ordnet einem digitalen Code (m) einen "1-aus-n"-Code zu (nur ein Ausgang aktiv)
  9. Mit welchem Baustein kann man eine
    Multiplikation mit 4 auf einfach Weise realisieren? Wie wird die
    Multiplikation in diesem Fall umgesetzt?
    • -Doppelter logischer Linksshift
    • -Die binären Zahlen werden nach links verschoben und hinten (rechts) jeweils für jeden Shift eine logische“0“ hinzugefügt
  10. Worin besteht der prinzipielle Unterschied
    zwischen einer ALU und einem ODER-Gatter?
    • ALU:
    • -kann verschiedene Operationen ausführen (addieren, multiplizieren…) -besteht aus einem komplexen Gatter Netz
    • ODER-Gatter:
    • -nur Eingänge logisch miteinander verknüpfen
    • -statische Schaltung
  11. Was ist ein Flipflop und wofür kann er
    verwendet werden?
    Flankengesteuerter Speicherbaustein, der einen Zustand halt und zurücksetzten kann.
  12. Was versteht man unter einer synchronen
    Hardwareschaltung?
    Schaltungen, die Informationen immer nur zu bestimmten Zeiten, synchron zum Steuersignal, speichern. Kleine Störungen auf der Datenleitung können so vermindert werden.
  13. Sie benötigen einen Ein-Aus-Schalter, es sind jedoch nur einfach Taster verfügbar. Entwickeln Sie eine digitale Schaltung, die das Verhalten eines Ein-Aus-Schalters nachbildet.
    • toggle-ff
    • T-Flipflop, toggelt immer wenn C sich ändert
    • ↪ Taster auf C geben
  14. Geben Sie die wesentlichen Zugriffsfunktionen von Speichersystemen an und erklären sie diese.
    • Ortsadressierung:
    • Die Zugriffsfunktion ist die Nummer, Adresse verrät keinen Aufschluss über den Inhalt, eine Tabelle zeigt Inhalt mit den Ortsangaben
    • (Hausnummern)

    • Inhaltsadressierung:
    • Zugriffsfunktion sucht den Inhalt, Änderung der Inhalte impliziert Änderung der Beschriftung
    • (Bibliothek)

    • Sequentielle Adressierung:
    • Die Zugriffsfunktion sucht in einer Reihenfolge ab, bis der passende Inhalt gefunden wurde, langsam aber leicht um zu setzen
    • (Kasette)
  15. Beschreiben Sie kurz, wie ein Prozessor grundsätzlich funktioniert (Fetch -Execute-Zyklus)
    • 1. an festgelegter Adresse im Speicher starten
    • - durch Hardware eingestellt (RESET,Vcc)

    • 2. Befehl laden ("fetch")
    • - Als Bitmuster im Speicher (falls kein Befehl = Absturz)
    • a) dekodieren
    • b) Operanden und deren Adresse ermitteln
    • c) Operanden in Prozessor laden

    • 3. Kommando ausführen ("execute")
    • a) ggf. nötige Daten aus Speicher laden 
    • b) Ausführen der operation
    • c) speichern des Ergebnisses

    • 4. nächste Adresse bestimmen
    • Image Upload
  16. Worin besteht der Unterschied zwischen einem Befehl mit einem und zwei Operanden? Geben Sie jeweils zwei Beispiele und verdeutlichen Sie, welche Werte wie geändert werden.
    • -Adressierungsart bei zwei Operanden eingeschränkt (nur 3 Adressbits)
    • -bei einem Operanden ist Operand Ziel und Quelle gleichzeitig

    • Beispiele:
    • add src, dst
    • AND src, dst

    • RRA dst
    • SWPB dst
  17. Welche Speicherbereiche (nur benennen, Adressen nicht relevant) besitzt ein typischer MSP430-Controller (wie der im BOCAS-Board) und wofür dienen sie?
    • -Peripheriekomponenten: dient zur Hardware Ansteuerung
    • -RAM-Speicher: enthält Daten und Variablen die zur Laufzeit beschrieben und verändert werden
    • -FLASH: enthält Programmcode, Vektortabellen und Konstanten die zur Laufzeit nicht verändert werden
  18. Nennen Sie Unterschiede zwischen direkter und indirekter Adressierung?
    -indirekte Adressierung: (@R3….) In dem Register steht die Speicheradresse unter der der Operand zu finden ist

    -direkte Adressierung: Im Befehl wird direkt der Wert angegeben (#...)
  19. Ein MSP430-Prozessor führe das folgende
    Programm aus:
    mov #0x0202, r4
    mov #0x1, r5
    mov #0x2, 0(r4)
    add @r4+, r5
    Welche Werte sind in r4, r5 und an 0x0202 gespeichert?
    • -r5= 0x03 (0x02 + 0x01)
    • -r4= 0x0204 (wortweises Postinkrement)
    • -0x0202 = 0x02
  20. Warum ist der Assemblerbefehl “add.b @r4,@r5“ nicht zulässig? Wie können Sie das, was mit diesem Befehl beabsichtig wurde, korrekt umsetzen?
    • -2 Adressbits für Quelle, 1 Adressbit für Ziel (@ verbraucht 2 Bit)
    • - add.b @r4, 0(r5)
  21. Beschreiben Sie die Schritte, die nötig sind, um den Pin 3 des Ports 4 als Ausgang zu Schalten und auf 1 zu setzen. Es ist nicht nötig, ein Programm zu schreiben, die verbale Beschreibung der erforderlichen Schritte genügt.
    • 1. Port 4 als Digital-I-O auswählen /Selection Register clearen
    • (bic.b #0xFF, &P4SEL)

    • 2. OUT Register clearen (Sicherheitshalber)
    • (mov.b #0x00, &P4OUT)

    • 3. Pin 3 als Ausgang setzen /Direction Register setzen
    • (bis.b #0x04, &P4DIR)

    • 4. Pin 3 auf 1 setzen
    • (bis.b #0x04, &P4OUT)
  22. Eine Software-Entwicklungsumgebung für Mikro-Controllersysteme besteht aus mehreren Teilprogrammen.
    Nennen Sie diese und wozu dienen sie?
    • -Editor (erstellen von Quelltexten in beliebiger Sprache)
    • -Compiler (Übersetzung von Sprache nach Assembler)
    • -Assemblierer (Übersetzen von Assembler in Maschinencode)
    • -Linker (Erzeugt aus den einzelnen Objektdateien eine ausführbare Dateien in einem Format, dass auf das Target geladen werden kann)
    • -Debugger (lädt die Datei auf das Target und steuert das Target für Debugging)
    • -Management (Umgebung in der Werkzeuge eingebettet sind)
  23. Was ist der Unterschied zwischen externer Programmierung und Im-System-Programmierung? Welche der beiden Varianten wurde im Praktikum verwendet?
    • Externe Programmierung
    • -Speicher wird aus dem Target genommen
    • -Speicher wird beschrieben durch ein Programmiergerät (EPROM,ROM)
    • -Speicher wird zurück ins Target eingesetzt

    • Im System Programmierung
    • (Im Praktikum verwendet)
    • -Target ist mit dem Host geeignet verbunden
    • -Speicher wird direkt im Target beschrieben (RAM)
  24. Welche Sektionen werden (üblicherweise) in einem Assemblerprogramm verwendet und wofür dienen sie?
    • -„.text“ Programm und Konstanten (Flash)
    • -„.bss“ Nicht initialisierte Varibale (RAM)
    • -„.sect „name““ Definition weiterer Sektionen
  25. Woher weiss die Entwicklungsumgebung, wohin welche Sektion kopiert werden muss? Welche Komponente der Entwicklungsumgebung ist dafür zuständig?
    • -Der Assemblierer übersetzt die Quelldateien und kennt die Speicheradressen nicht, erzeugt deshalb für jede Sektion ein Abbild bei 0x00
    • -Der Linker passt diese Adressen an, unter Berücksichtigung der Hardware

    - Sektionen sind in Section Map und Memory Map angegeben
  26. Wie definiert man eine eigene Sektion? Es genügt, die prinzipiellen Schritte anzugeben, es ist nicht erforderlich, die genauen Befehle anzugeben. Sollten Sie letzteres tun, so erklären Sie, was die einzelnen Zeilen bewirken.
    • - Defintion einer Sektion im Assembler Sourcefile
    • - Hinzufügen eines Eintrags in der Memory Map und Längenkorektur eines anderen Eintrags
    • - Hinzufügen eines Eintrages in der Section Map
    • - .sect anlegen
  27. Was bewirkt „.bss var1 1,2“?
    Variable „var1“ wird mit einer Länge von 1Byte ausgerichtet (das zweite Byte wird„besetzt“)
  28. Wie definiert man eine Variable in Assembler?
    „.bss ‚name‘,‘länge‘“
  29. Wie oft wird der Körper der folgenden Schleife ausgeführt? Begründen Sie Ihre Antwort.
       mov #0x11,r4
    L1:
       dec r4
       jnz L1
    • - Startet mit r4=17,
    • - wird erst dekrementiert, dann überprüft
    • - läuft 17 mal
  30. Wie funktioniert die tabellengesteuerte Programmierung? Welchen Vor- und Nachteil hatsie?
    • -Es werden nur fest einprogrammierte Werte ausgegeben
    • -eine Tabelle mit benötigter Länge wird angelegt und die Werte hart einprogrammiert
    • -Durch eine Rechnung wird das jeweilige Feld ausgewählt und der in dem Feld stehende Wert weiter verarbeitet

    - Speicher vs.Geschwindigkeit
  31. Wozu dient der Stack und in welchem Speicher liegt er beim MSP430?
    • -liegt im RAM
    • -LIFO-Prinzip benutzt z.B.: Push und Pop
    • -Der Stackpointer zeigt immer auf den Top of Stack (Speicheradresse des letzten Eintrages)
  32. Was genau macht die Hardware eines MSP430, wenn man mittels „call“ ein Unterprogramm aufruft? Was geschieht beim Verlassen mittels RET?
    • -„call“ kopiert die Adresse des Programms in den Stack-Speicher und der PC erhält die Startadresse des Unterprogramms (PC-Counter erhöhen)
    • -„ret“ nimmt die Zieladresse die auf dem Stack steht und übergibt diese an das PC-Register (Stackpointer erhöhen)
  33. Das folgende Unterprogramm soll eine Zahl zwischen 0 und 15 quadrieren:

    calc:
        push r4
        push r5
        mov.b #0, r4
        mov.b r12 ,r5
     L1:
        cmp.b #1, r12
        jz done
        add.b r5, r4
        dec r12
        jmp L1
      done:
        mov r4, r12
        pop r4
      ret

    In dieser Form funktioniert diese Programm aber nicht. Zwei Fehler sind vorhanden.
    Auf welche Weise muss der Aufrufer diesem Unterprogramm die zu quadrierende Zahl übergeben? Wie wird der Rückgabewert (also die Quadratzahl) übergeben? Geben Sie beim Bearbeiten der Aufgabe davon
    aus, dass die Funktion nur mit Werten zwischen 0 und 15 aufgerufen wird, eine Bereichsprüfung ist nicht nötig.
    • - pop r5 fehlt
    • - r12 muss mit 0 verglichen werden

    • - r12 übergibt die zu quadrierende Zahl
    • - r12 gibt das Ergebniss zurück
  34. Welche Schritte sind nötig, um ein in Assembler programmiertes Unterprogramm in eine eigene Datei auszulagern? Was muss in der neuen Datei stehen, was in der, von der aus das Unterprogramm aufgerufen werden soll?
    • -In der main muss ein .ref „name“ vorhanden sein und der Aufruf call #“name“ an einer Stelle gegeben sein
    • -Im Unterprogramm muss .def „name“ vorhanden sein sowie das „Sprunglabel“ (zu Beginn des Programms) „name:“
    • - Optional push und pop und am Ende „ret“
  35. Was versteht man unter „Call by Value“ und „Call by Reference“ und welche Vorteile haben die Ansätze jeweils?
    • „Call by Value“:
    • Parameter werden in Register kopiert und das Unterprogramm entnimmt diese aus den Registen

    • „Call by Reference“:
    • -Übergabe der Adressen der Operanden (durch benutzen von Registern)
    • -Die Operanten befinden sich im internen Speicher

    • Vor und Nachteile
    • -„Call by Value“ einfache Übergabe,
    • -„Call by Reference“ komplexer, Vorteil bei größeren Parameter
  36. Woher weiß der C-Compiler der CCS-IDE welche Daten in den Flash-Speicher und welche Daten in den RAM-Speicher geladen werden sollen?
    • -Speicherklasse volatile und const.
    • -Nicht initialisierte Variable (RAM), Programm
    • und Konstanten (FLASH)
  37. Welche Bedeutung hat die Speicherklasse „volatile“?
    • -keine Optimierung
    • - zwingend für Variablen, auf die nur geschrieben oder nur gelesen werden oder die durch Peripherie verändert werden
    • - Variablen dürfen nicht in Registern gehalten werden
  38. Worin unterscheidet sich die Programmierung eines Mikrocontrollers in C von der C-Programmierung auf einem PC?
    • -Bei dem Anlegen der Variablen muss auf den Datentyp geachtet werden, da der Mikrocontroller weniger Speicher hat
    • als ein PC
    • -Da der Mikrocontroller kein Betriebssystem hat, kann nicht auf Standard-Funktionen zurückgegriffen werden
    • -Eingeschränktes Debuggen (Verbindung zwischen PC und Mikrocontroller muss gewehrleistet sein)
  39. Wie kann man in C einzelne Bits eines Wortes abfragen oder ändern?
    • -Maskenoperationen
    • -Bitfelder (hier nicht erlaubt)
  40. Gegeben sei eine Datei mit einem C-Programm und eine weitere mit einem Assembler-Unterprogramm. Was muss getan werden, damit man das Assemblerunterprogramm von C-Programm aus aufrufen kann?
    • - symbolische Namen aus Assemblerprogramm in C als EXTERN gekennzeichnet , in Assembler als .global oder .def
    • -symbolische Namen in C nicht als static, in Assembler mit .ref bekannt machen
    • -Assembler muss sich an Register-Konvention halten
  41. Gegeben sei eine Datei mit einem Assembler
    Programm und eine weitere mit einem C-Unterprogramm. Was muss getan
    werden, damit man das C-Unterprogramm von Assembler aus aufrufenkann?
    • -in Assembler externe Variablen mit .ref bekannt machen
    • -header datei einbinden mit .cdecls
  42. Wann ist die Verwendung von Assembler-Inlining sinnvoll? Was muss dabei beachtet werden?
    - funktionaler, schneller Weg

    • - asm("Codesequenz")
    • - Syntaxregeln einhalten (wird nur kopiert)
    • - keine Verwendung von Registern
    • - Speicherklasse volatile erlaubt
    • -Mehrzeilige Sequenzen mit n trennen, einrücken mit t
  43. Nennen Sie den Unterschied zwischen einem Unterprogramm und einer Interrupt-Service-Routine.
    • -Interrupt kann beliebig an jeder Stelle des Hauptprogramms auftreten, wird durch ein externes Ereignis ausgelöst
    • - Unterprogramm wird im Hauptprogramm planmäßig aufgerufen
  44. Was tut die Hardware eines MSP430, wenn ein Interrupt auftritt? Was genau bewirkt der„reti“-Befehl?
    • -Speichern der Status- und PC-Register auf dem Stack
    • -Ausführung der Service Routine
    • -Wiederherstellung der auf dem Stack gespeicherten Register
    • -Rücksprung in das Programm, laden der Register

    -„reti“ ist der Befehl der das Statusregister und das PC-Register vom Stack zurückkopiert
  45. Was versteht man unter einem Interrupt Vektor? Wo befinden sich diese im MSP430?
    • - Verktoren in einer Tabelle mit den Speicheradressen der jeweiligen Servicfunktionen der Quellen
    • - oberer Bereich des FLASH
  46. Was muss man prinzipiell tun, wenn man in einem Programm Interrupts verwenden möchte? Es genügt die Angabe der prinzipiellen Schritte, Code ist nicht notwendig.
    • -SP initialisieren
    • -Interrupt-Hardware initialisieren
    • -Interrupt-Service-Routine bereitstellen
    • - Interrupts freigeben
  47. Wozu braucht man einen Timerinterrupt? Angenommen, die Zeit zwischen zwei Timerinterrupts lässt sich zwischen 1ms und 65ms einstellen. Sie wollen jedoch eine Funktion alle zwei Sekunden aufrufen. Wie machen Sie das? Es ist nicht nötig, Code anzugeben, die Beschreibung des Prinzips genügt.
    • -Periodische Interruptquelle werden zum
    • Beispiel zur Zeitzählung benutzt
    • -Neben den Standard Konfigurationen der ISR,muss der Interruptvektor angepasst werden und der TimerA definiert
    • werden (Taktquelle wählen , Vorteiler [1/2/4/8] , der Zählmodus
    • [Stop/UP/Continuous/Up and Down] )
    • -Den Interrupt auf 50ms einstellen und diesen 40-mal durchlaufen lassen, wenn der Zähler auf „0“ bzw "40" ist, die gewünschte Funktion ausführen
  48. Der Port1 des MSP430 verfügt über nur einen Interruptvektor. Jeder der 8 Pins kann jedoch einen Interrupt auslösen. Wie stellen Sie in der Interrupt-Behandlungsroutine fest, an welchem PIN der Interrupt aufgetreten ist?
    Flagregister des Interrupts verrät durch logisches High "1" welcher Pin den Interrupt liefert
  49. Warum ist es keine gute Idee, in einer
    Interrupt-Behandlungsroutine umfangreiche Berechnungen durchzuführen? Welche Alternative bietet sich an?
    • -andere Interrupts kommen nicht sofort zum Zug, da Interrupts in der Behandlungsroutine ausgeschaltet sind
    • -in ISR Ereignisse und neue Daten annehmen, Statusflag setzen, das etwas passiert ist , im Hauptprogramm vergleichen ob Daten neu sind und diese Übernehmen, Flagh zurücksetzen

Card Set Information

Author:
Sabbi
ID:
334542
Filename:
µController
Updated:
2017-09-26 09:53:49
Tags:
Mikrocontroller MC
Folders:

Description:
Fragenkatallog von Richling
Show Answers:

Home > Flashcards > Print Preview