Forum: Offtopic Hilfe bei Mikroprozessor Klausur


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Ich studiere Physikalische Technik und habe bald eine Klausur über 
Mikroprozessortechnik. Ich bin durch googlen auf diese Website hier 
gefunden und hätte eine Frage. Ich habe hier eine Altklausur ohne 
Lösungen aber der Professor hat uns manche Dinge nicht so gut erklärt.
Ich wollte Fragen ob mir jemand von euch sagen kann ob diese Antworten 
von mir richtig sind und wenn nein was die Lösung wäre.

Mfg Alex

: Verschoben durch User
von Betreuer (Gast)


Lesenswert?

Unscharf und kontrastarm fotografiert, dazu Sauklaue.
Was erwartest du?

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Tut mir leid ich habe ein besseres Bild hochgeladen.

von Stefan S. (chiefeinherjar)


Lesenswert?

Kannst du da überhaupt IRGENDWAS davon lesen? - Im Ernst, lad' mal ein 
SAUBERES Bild hoch!

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Andere Belichtung

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan S. schrieb:
> Kannst du da überhaupt IRGENDWAS davon lesen?
Ich schon. Zumindest die Aufgaben... ?

von Jim M. (turboj)


Lesenswert?

Da hättest Du lieber im Kurs aufpassen müssen, denn der Prof ist ein 
Spaßvogel. "Polled interrupt", LOL - vielleicht wollte er diejenigen 
trollen, die kein Englisch können. Das ist ein Oxymoron.

Ansonsten sind die meisten Antworten falsch oder unvollständig. Wenn 
sich alles auf den LPC1769 bezieht, wären beispielsweise 4 Bytes 
zwischen den 32-bittigen Interrupt Addressen.

Und welche "Anweisung" ein Compiler plaziert, ist ja auch eher ein 
Witz.

Der Programmierer gibt Anweisungen an den Compiler, der Compiler gibt 
binäre Daten raus. An der Interrupt Adresse im Flash, ROM oder RAM steht 
jedenfalls die Adresse der Handler Funktion plus 1.

von Dieter F. (Gast)


Lesenswert?

Alex schrieb:
> Tut mir leid ich habe ein besseres Bild hochgeladen.

Nö, hast Du nicht. Ist es zu viel verlangt, die Antworten hier - 
deutlich lesbar, gekennzeichnet durch die Antwort-Buchstaben mit Klammer 
- hinzuschreiben?

So auf den ersten Blick wäre das Studium der Angabe von Adressen im MC 
schon mal ein guter Ansatz.

von Alex V. (alex_v)


Angehängte Dateien:

Lesenswert?

Jim M. schrieb:
> Da hättest Du lieber im Kurs aufpassen müssen, denn der Prof ist ein
> Spaßvogel. "Polled interrupt", LOL - vielleicht wollte er diejenigen
> trollen, die kein Englisch können. Das ist ein Oxymoron.
>
> Ansonsten sind die meisten Antworten falsch oder unvollständig. Wenn
> sich alles auf den LPC1769 bezieht, wären beispielsweise 4 Bytes
> zwischen den 32-bittigen Interrupt Addressen.
>
> Und welche "Anweisung" ein Compiler plaziert, ist ja auch eher ein
> Witz.
>
> Der Programmierer gibt Anweisungen an den Compiler, der Compiler gibt
> binäre Daten raus. An der Interrupt Adresse im Flash, ROM oder RAM steht
> jedenfalls die Adresse der Handler Funktion plus 1.

Tut mir leid ich dachte das Bild sollte in Ordnung sein.

Danke für die Antwort, es ist so dass es eigentlich nur ein Nebenfach 
ist und ich hatte davor weder mit C noch mit Mikroprozessoren etwas zu 
tun. Wir haben in der Vorlesung nur Prinzipien behandelt und nicht 
programmiert. Ein Praktikum war auch vorhanden, es waren allerdings nur 
2 Termine und die Aufgaben waren vorgegeben ohne Erklärung warum man 
etwas macht. Ausserdem war es ein anderer Mikrocontroller.

Ich habe ausserdem nochmal alles abgeschrieben und ein besseres Bild 
gemacht.


Die Fragen aus dem Test, leider sind viele auf die Grafik bezogen:

a) Markieren Sie einen „polled interrupt“ und einen „vectored interrupt“ 
in der Tabelle.

b) Wie viele Bytes sind zwischen den einzelnen Interrupt Adressen?

c) Welche Art von Anweisung wird der Compiler an die Interrupt Adressen 
platzieren?

d) Markieren Sie in der Tabelle oben die internen Interrupts.

e) Bei Programmen mit Interrupts finden Sie häufig global deklarierte 
Variablen. Warum?

f) Weshalb müssen Sie in der Interruptroutine das Interruptflag löschen?

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Jim M. schrieb:
> Da hättest Du lieber im Kurs aufpassen müssen, denn der Prof ist ein
> Spaßvogel. "Polled interrupt", LOL - vielleicht wollte er diejenigen
> trollen, die kein Englisch können. Das ist ein Oxymoron

Das ist kein Oxymoron, sondern du hast keine Ahnung.

Beim Vectored Interrupt(z.B. AVR) springt das Programm auf einen diesem 
Interrupt zugeordneten Vektor. Beim Polled Interrupt(z.B. PC) wird ein 
IRQ ausgelöst und das Programm oder Betriebssystem muß abfragen(pollen), 
welche Quelle den IRQ ausgelöst hat.

von Dieter F. (Gast)


Lesenswert?

Alex V. schrieb:
> Die Fragen aus dem Test,

Was genau hast Du an

Dieter F. schrieb:
> die Antworten hier -
> deutlich lesbar, gekennzeichnet durch die Antwort-Buchstaben mit Klammer
> - hinzuschreiben?

nicht verstanden?

von Alex V. (alex_v)


Lesenswert?

Dieter F. schrieb:
> Alex V. schrieb:
>> Die Fragen aus dem Test,
>
> Was genau hast Du an
>
> Dieter F. schrieb:
>> die Antworten hier -
>> deutlich lesbar, gekennzeichnet durch die Antwort-Buchstaben mit Klammer
>> - hinzuschreiben?
>
> nicht verstanden?

Tut mir leid ich will eure Zeit hier nicht verschwenden, ich bin mir bei 
meinen Antworten eh nicht sehr sicher deswegen dachte ich das es nicht 
nötig ist sie mit hinzuschreiben.

a) Markieren Sie einen „polled interrupt“ und einen „vectored interrupt“
in der Tabelle.
 -> In beigefügten Bild

b) Wie viele Bytes sind zwischen den einzelnen Interrupt Adressen?
 -> 0x98 bis 0x9C vier Bits = 1/2 Byte??

c) Welche Art von Anweisung wird der Compiler an die Interrupt Adressen
   platzieren?
 -> Funktion, festlegen der Interrupt Service Routine.

d) Markieren Sie in der Tabelle oben die internen Interrupts.
 -> Interrupttabelle im Bild, da hab ich leider keine Antwort.

e) Bei Programmen mit Interrupts finden Sie häufig global deklarierte
Variablen. Warum?
 -> Die Variablen sind für das Main-Programm notwendig und werden nur 
von
    der ISR bearbeitet

f) Weshalb müssen Sie in der Interruptroutine das Interruptflag löschen?
 -> Sonst kann das Programm nicht weiter laufen bzw. kein weiterer
    Interrupt ausgelöst werden.

von Thomas E. (thomase)


Lesenswert?

Alex V. schrieb:
> a) Markieren Sie einen „polled interrupt“ und einen „vectored interrupt“
> in der Tabelle.
>  -> In beigefügten Bild

Die mit einer Quelle sind vectored, die mit mehreren Quellen polled.
Sieht richtig aus.


> b) Wie viele Bytes sind zwischen den einzelnen Interrupt Adressen?
>  -> 0x98 bis 0x9C vier Bits = 1/2 Byte??

Unsinn.

Der Vektor geht von 0x98 - 0x9B. Und das sind 4 Bytes. Das passt dann 
auch ins 4er Alignment für die Adrssierung. 0x9C ist der Anfang des 
nächsten.

0x90..0x93
0x94..0x97
0x98..0x9B
0x9C..0x9F



> c) Welche Art von Anweisung wird der Compiler an die Interrupt Adressen
>    platzieren?
>  -> Funktion, festlegen der Interrupt Service Routine.

Einen Sprung in die ISR.



> d) Markieren Sie in der Tabelle oben die internen Interrupts.
>  -> Interrupttabelle im Bild, da hab ich leider keine Antwort.

Sollte klar sein.

> e) Bei Programmen mit Interrupts finden Sie häufig global deklarierte
> Variablen. Warum?
>  -> Die Variablen sind für das Main-Programm notwendig und werden nur
> von
>     der ISR bearbeitet
>

ISRs sind keine Funktionen und haben daher keinen Return-Wert und können 
nicht parametriert werden. Sie dienen dem Datenaustausch zw. der ISR und 
dem Rest des Programms.


> f) Weshalb müssen Sie in der Interruptroutine das Interruptflag löschen?
>  -> Sonst kann das Programm nicht weiter laufen bzw. kein weiterer
>     Interrupt ausgelöst werden.

Weil dieser Controller es nicht selbst macht und der Interrupt nach 
Verlassen der ISR wieder aufgerufen würde. Womit das ganze System dann 
lahmgelegt wird. Ob andere IRQs trotzdem drankommen, ist von deren 
Priorität abhängig. Wie das bei diesem Conroller ist, weiß ich nicht. 
Ich kenne den nicht.

von Alex V. (alex_v)


Lesenswert?

Vielen vielen Dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.