Forum: Compiler & IDEs ARM9 UART Memory Mapped IO - Linux Kernel Module


von jop (Gast)


Lesenswert?

Hallo,

ich habe hier einen Samsung SC32412 (=S3C2410 bzgl. UART) ARM9 mit einem 
2.6.16 Linux Kernel mit dem ich gerne IR Fernbedienungssignale 
"verarbeiten" würde. Dazu habe ich LIRC mit den entsprechenden 
Kernelmodulen kompiliert und installiert – keine Problem soweit. Der 
LIRC Treiber läuft, scheint allerdings nicht richtig mit den Memory 
Mapped IOs der UART umgehen zu können. Im Quelltext wird erwähnt, das 
evtl. ein Aufruf von „ioremap“ helfen könnte. Also die Frage ist, wie 
man direkt auf die seriellen Schnittstellen zugreifen kann. Zur Zeit 
versuche ich folgendes:

Es gibt die (physikalische) Adresse:
1
#define S3C2410_PA_UART0 0x50000000
Den Speicher „holen“, remappen, und lesen.
1
request_mem_region(0x50000000, 8, LIRC_DRIVER_NAME);
2
3
char* baseptr = ioremap(0x50000000);
4
5
unsigned int value = readb(baseptr + offset);

Natürlich werden alle Rückgabewerte getestet... es treten keine Fehler 
auf. Der „Treiber“ läuft und liefert irgendeine Ausgabe, die aber 
sicherlich nichts mit einer der seriellen Schnittstellen zu tun hat :(
Es gibt auch noch eine weitere (virtuelle) Adresse:
1
#define S3C2410_VA_UART0 0xF0800000
Allerdings verstehe ich nicht was ich mit ihr noch anfangen könnte.

Bin nach wirklich langem googlen inzwischen etwas verzweifelt und bitte 
um Hilfe.

von Philipp (Gast)


Lesenswert?

Bist du schon weiter gekommen?
Ich bräuchte hier ähnliche Hilfe bei einem S3C2440.

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.