Hardwareprogrammierung mit C

hallo alle zusammen;
ich will mich jetzt mit die Hardwareprogrammierung in C beschäftigen.ich habe mit Assembler programmiert(ein bisschen mehr als Grundlage :smile:).konnen sie mir bitte literature (bücher,online-tutor…) empfehlen.
danke.

Hallo,

da gibt es in C eigentlich nicht viel dazuzulernen. Alles was an Hardware programmierbar ist, passiert in Registern. Für den Zugriff gibt es 2 Lösungen: entweder ist im Compiler ein Adressraum für die Register vorgesehen und diese sind in einnem H-File definiert, dann schreibt man einfach

BaudRegister = Baud9600

und der Compiler macht daraus eine Output-Befehl mit der Konstante für 9600 Baud. Alternativ kann man eine Funktion Output (Adresse,Wert) verwenden, die in Assembler geschrieben ist. Das kann man notfalls auch selbst machen. Dann würde es heissen

Output (BaudRegister,Baud9600)

Eine weitere notwendige Erweiterung ist die Deklaration einer C-Funktion als Interrupt-Service. Da bei den meisten Embedded-Prozessoren die Interrupts auf feste Adressen führen, kann man notfalls auch das durch ein paar Zeilen Assembler selbst erledigen.

Der Keil-8051-C-Compiler etwa definiert

void timer0 (void) interrupt 1 using 2

d.h. die Funktion timer0 ist die Reaktion auf die Interruptquelle 1 (den Timer) und benutzt Registerbank 2.

Viel mehr fällt mir im Moment zum Thema C und Hardware nicht ein, nicht genug, um ein Buch zu schreiben. Die notwendigen Erweiterungen zu Standard C sollte man in 1 bis 2 Tagen begriffen haben.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

ich will mich jetzt mit die Hardwareprogrammierung in C
beschäftigen.
ich habe mit Assembler programmiert

Welche „Hardware“ ist das denn? Was soll
diese Hardware aufgrund der Programmierung
dann machen?

Grüße

CMБ