Forum: Mikrocontroller und Digitale Elektronik Empfehlenswerte Theorie-Bücher?


von Rolf F. (Gast)


Lesenswert?

Welche empfehlenswerte Bücher gibt es zur Theorie der MC, also z. B. 
über den Stack und die Unterschiede von ISRs u. gewöhnlichen Funtkionen 
dort?

von Klaus (Gast)


Lesenswert?

Hi,

ich kann dir folgende Bücher empfehlen:

von Flik/Liebig - Mikroprozessortechnik aus dem Springer-Verlag. 
Behandelt alles was man wissen muß:
-cisc/risc
-assembler/c
-speicherorganisation
-I/O und Rechnerkommunkation (seriell, parallel usw.)
-busse (pci)
-peripherie (dma. scsi, festplatten, drucker etc.)
-auch sdeine Fragen nach dem Stack etc :-)

und

von Beierlein/Hagenbruch - Mikroprozessortechnik aus dem fachbuchverlag 
Leipzig.
Das Buch ist sehr knapp gehalten, behandelt aber auch so gut wie alle 
wichtigen Themen.

Beide Bücher habe ich zur Vorbereitung auf meine Diplomprüfung benutzt. 
Die taugen echt was .-)

Achja, falls dich die Titel stören...Ein µC ist prinzipiell nichts 
anderes als ein µP bei dem ROM/RAM/IO etc. integriert sind.

Gruß,
 Klaus

von Klaus (Gast)


Lesenswert?

Hi nochmal,

habe gerade gesehen, daß das zweite von mir genannte Buch auch hier auf 
der Seite empfohlen wird:

http://www.mikrocontroller.net/buecher.htm

Das erste von mir genannte ist meiner Meinung nach aber ein Tick besser, 
weil es auch auf die Programmierung etc. eingeht. beide zusammen sind 
unschlagbar :-)

Gruß,
 Klaus

von Rolf F. (Gast)


Lesenswert?

Aha, danke.
Die werde ich mal kaufen u. bei Gelegenheit lesen um zu erfahren, wieso 
sich eine ISR auf dem Stack anders verhält als eine einfache Funktion.

von Klaus (Gast)


Lesenswert?

inwiefern anders verhält?

von Rolf Freitag (Gast)


Lesenswert?

@Klaus:
Beispielsweise muss eine ISR in Assembler mit reti statt ret beendet 
werden und zum Wechseln des Modus braucht man auch in C einen anderen 
Befehl, wenn der in einer ISR ausgeführt werden  (u. auch nachher 
wirksam sein) soll.
Etwas, was in einer einfachen Funktion gut funktioniert, kann in einer 
ISR einen Absturz bewirken (das ist zumind. beim MSP430 mit dem 
IAR-Compiler und wohl auch den anderen so).

von Klaus (Gast)


Lesenswert?

Ach sowas meinst du :-)

Normalerweise werden Interrupts duch das Interruptsystem des Prozessors 
ausgeführt. Das bedeutet, daß das laufende Programm unterbrochen wird 
und mind. der PC (Program Counter) gesichert wird. Üblich ist auch, daß 
das Statusregister mitgesichert wird (bei Atmel aber nicht, da muß man 
das von Hand machen). Desweiteren werden weitere Interrupts gesperrt.

Mit anderen Worten wird der Zustand/Status des Prozessors gesichert, 
sobald ein Intrerrupt auftritt und wieder hergestellt, sobald die ISR 
abgearbeitet wurde. Dein Programm darf durch den Interrupt in keiner 
Weise beeinflusst werden, bzw. es darf nicht mitbekommen, daß überhaupt 
ein Interrupt aufgetreten ist.
Bei Prozessoren, die verschiedenen Modi (Usermodus, Supervisormodus) 
unterstützen wird dann auch in den Supervisormodus umgeschaltet. In 
diesem Modus können dann privilligierte Befehle ausgeführt werden, die 
im Usermodus nicht ausgeführt werden dürfen (=unterstützung für das 
Betriebssystem).

Das alles erklärt dann auch, wieso du nicht mit "ret" zurückspringen 
kannst, weil ret nicht den exakten Ur-Zustand herstellen würde (es 
schaltet nicht zurück in den Usermodus und das Statur-Register wird auch 
nicht wieder hergestellt und Interrupt würden damit dann auch nicht 
wieder erlaubt werden).
Alles was ret macht ist den PC mit der Rücksprungadresse zu laden.

Ich hoffe, ich habe da jetzt nicht allzuviele Fehler eingebaut, aber 
prinzipiell ist es so.

Gruß,
 Klaus

von Rolf Freitag (Gast)


Lesenswert?

Aha, danke.
Naja, allzuschwierig sind Microcontroller ja nicht, allein schon weil es 
da kein SMP gibt und es Deadlocks wohl nicht geben kann.

von Klaus (Gast)


Lesenswert?

Nochwas:
Es ist zwar nicht verkehrt diese von mir genannten Bücher zu kaufen, 
aber nur, wenn dich das alles wirklich interessiert.

Wenn du aber nur wissen möchtest, wie der Stack funktioniert, oder 
ähnliches, dann dürften die Bücher Overkill sein. Dann würde ich dir 
empfehlen ein bisschen zu googlen, oder deine Fragen hier loszuwerden.

Zumindest sollest du dir die Bücher vorher ansehen, bevor du die einfach 
kaufst, weil billig sind sie nicht.

Bei einem µP gibt es übrigens auch kein SMP :-) Und wo im Prozessor 
Deadlocks auftreten könnten ist mir gerade unklar.
Wahrscheinlich meintest du das Kohärenz-Problem, daß auftritt, wenn 
mehrere Prozessoren mit lokalen Caches auf einen gemeinsamen Speicher 
zugreifen...

Und einen AMD/Intel Prozessor der neueren Generation darfst du nicht 
unbedingt mit einem AVR µC vergleichen. Da liegen Welten dazwischen. 
Auch sind die Einsatzgebiete sehr unterschiedlich.

Ich habe mir aber mal als Projekt überlegt so eine Art SMP/MPP mit µC zu 
realisieren. Einfach mal um ein bisschen zu experimentieren. Das reizt 
mich irgendwie :-)

Gruß,
 Klaus

von Rolf F. (Gast)


Lesenswert?

Aha, aber für SMP braucht man eigentlich schnelle Busse, wennn es 
sinnvoll sein soll und die gibt es praktisch nicht, außer man  nimmt 
mind. je 2 Ports (16 Pins) für einen Datenbuss und einen Adressbuss. Bis 
es MCs mit DMA zu kaufen gibt und man das von MC zu MC performant machen 
kann, sollte man wohl noch warten, vor allem weil die CPU bei den 
meisten geplanten MCs dieselben Busse verwendet u. deshalb inaktiv 
bleiben muss während des DMA-Transfers.
Sowas wie superpipelined superskalar MCs gibt´s anscheinend auch noch 
nicht.

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.