Hallo,
ich hab folgendes Problem:
Es soll in /dev/ eine neue Gerätedatei angelegt werden, über die über die üblichen Syscalls (open, close, read, write) zugegriffen werden kann. Das dahinter liegende Kernelmodul soll Eingaben an diese Gerätedatei prüfen, formatieren und über die serielle Schnittstelle (/dev/ttySx) rausschicken.
Das Problem besteht nun darin, dass ich ja im Kernel Space keine User Space Funktionen aufrufen kann, z.B. die aus stdio.h. Eben diese brauche ich aber, um auf die serielle Schnittstelle zugreifen zu können. Unter "/usr/include/linux" habe ich leider nichts passendes finden können. Und beim Kompilieren fliegt natürlich prompt folgendes:
Jetzt ist meine Frage, wie kann ich vom Kernel Modul aus auf die serielle Schnittstelle zugreifen, BAUD Rate setzen und drauf schreiben bzw. davon lesen?
ich hab folgendes Problem:
Es soll in /dev/ eine neue Gerätedatei angelegt werden, über die über die üblichen Syscalls (open, close, read, write) zugegriffen werden kann. Das dahinter liegende Kernelmodul soll Eingaben an diese Gerätedatei prüfen, formatieren und über die serielle Schnittstelle (/dev/ttySx) rausschicken.
Das Problem besteht nun darin, dass ich ja im Kernel Space keine User Space Funktionen aufrufen kann, z.B. die aus stdio.h. Eben diese brauche ich aber, um auf die serielle Schnittstelle zugreifen zu können. Unter "/usr/include/linux" habe ich leider nichts passendes finden können. Und beim Kompilieren fliegt natürlich prompt folgendes:
Code:
sv203_steering.c:71: warning: implicit declaration of function ‘write’
sv203_steering.c:145: warning: implicit declaration of function ‘open’
sv203_steering.c:150: warning: implicit declaration of function ‘fcntl’
sv203_steering.c:152: warning: implicit declaration of function ‘tcgetattr’
sv203_steering.c:153: warning: implicit declaration of function ‘cfsetispeed’
sv203_steering.c:154: warning: implicit declaration of function ‘cfsetospeed’
sv203_steering.module/src/sv203_steering.c:156: warning: implicit declaration of function ‘tcsetattr’
(...)
Jetzt ist meine Frage, wie kann ich vom Kernel Modul aus auf die serielle Schnittstelle zugreifen, BAUD Rate setzen und drauf schreiben bzw. davon lesen?