Las funciones del controlador de Linux prohíben la optimización de las funciones del controlador de Linux
¿Qué tipo de señal de conducción?
Memoria NAND reloj fuente de alimentación puerto DMAIO interrupción UARTUSB LCDIICIISSPI cámara botón de pantalla táctil tarjeta de sonido tarjeta de red SATAPCI-Express
BSPGPIO
Tipo de dispositivo: dispositivo de bloqueo de controlador de caracteres dispositivo de red dispositivo varios
Cinco subsistemas: programación de procesos administración de memoria archivo virtual interfaz de red IPC
Dispositivo de caracteres dispositivo de caracteres: un dispositivo al que se accede en modo de flujo de caracteres, como terminal de caracteres, puerto serie, Acceso secuencial general, pero también puedes mover el puntero de acceso hacia adelante y hacia atrás, como una tarjeta de captura de fotogramas.
Las cosas comunes que se desarrollarán incluyen: pantallas táctiles, teclados personalizados, dispositivos de captura de video, dispositivos de audio, etc.
Dispositivo de bloqueo Dispositivo de bloqueo: dispositivos que utilizan acceso a bloques de datos, como discos , etc., pueden acceder al móvil a voluntad. La diferencia con los dispositivos de caracteres radica en la forma en que el núcleo gestiona los datos internamente, como el uso de mecanismos de almacenamiento en caché. Y debe admitir el sistema de archivos de montaje.
Básicamente, no es necesario que lo desarrolle usted mismo. Linux proporciona discos duros, discos ópticos, dispositivos de almacenamiento USB, etc.
Interfaz de red: un dispositivo al que se accede mediante transmisión de paquetes, diferente de los dos anteriores. Cree y configure dispositivos a través de ifconfig. La mayor diferencia entre el controlador de red y el controlador de bloque es que el controlador de red acepta datos externos de forma asincrónica, mientras que el controlador de bloque solo responde a las solicitudes del núcleo
Necesita desarrollarlo usted mismo
Otro : la clase de bus, como USB, PCI, SCSI, etc., generalmente se usa junto con otros controladores.
Algunos controladores de dispositivos que comúnmente deben desarrollarse incluyen comunicación IIC, SPI y USB.
De acuerdo con el modo de trabajo específico del dispositivo de hardware, lea y escriba los registros del dispositivo, complete el sondeo del dispositivo, interrumpa el procesamiento, la comunicación DMA, asigne la memoria física a la memoria virtual, etc., y finalmente habilite el dispositivo de comunicación para enviar y recibir datos, de modo que el dispositivo de visualización pueda mostrar texto e imágenes, y el dispositivo de almacenamiento pueda grabar archivos y datos.
Los dispositivos de caracteres se refieren a aquellos dispositivos a los que se debe acceder en orden de serie, como pantallas táctiles, unidades de cinta, ratones, etc. Se puede acceder a los dispositivos de bloque en cualquier orden y operar en bloques, como discos duros, unidades de disquete, etc. Los dispositivos de caracteres no pasan por el búfer rápido del sistema, mientras que los dispositivos de bloques pasan por el búfer rápido del sistema. Sin embargo, no existe un límite claro entre los dispositivos de caracteres y los dispositivos de bloques. Por ejemplo, un dispositivo Flash cumple con las características de un dispositivo de bloques, pero aún podemos acceder a él como un dispositivo de caracteres.
lEscribir controladores de dispositivos Linux requiere que los ingenieros tengan una muy buena base de hardware y comprendan los métodos de lectura y escritura de SRAM, Flash, SDRAM y discos, las interfaces de UART, I2C, USB y otros dispositivos, así como así como sondeo, interrupciones y DMA El principio del bus PCI y la unidad de administración de memoria (MMU) de la CPU, etc.
lEscribir controladores de dispositivos Linux requiere que los ingenieros tengan una muy buena base en lenguaje C y sean capaces de usar de manera flexible estructuras, punteros, punteros de función y aplicaciones y versiones de memoria dinámica en lenguaje C.
lEscribir controladores de dispositivos Linux requiere que los ingenieros tengan una determinada base del kernel de Linux. Aunque no se requiere que los ingenieros realicen una investigación en profundidad sobre varias partes del kernel, al menos deben comprender la interfaz entre el controlador y. el núcleo. Especialmente para dispositivos complejos como dispositivos de bloque, dispositivos de red, dispositivos Flash y dispositivos de puerto serie, la arquitectura del controlador definida por el propio kernel es muy compleja.
lEscribir controladores de dispositivos Linux requiere que los ingenieros tengan una muy buena base en sincronización y control de concurrencia multitarea, porque los bloqueos de giro, mutex, semáforos, colas de espera, etc. se utilizan ampliamente en el controlador para concurrencia y mecanismo de sincronización.
¿Explicación del accionamiento de rotación de la función Adamsstep?
La explicación es la siguiente:
En el tipo de movimiento articular, accionamiento de rotación, seleccione Desplazamiento, desplazamiento angular (Desplazamiento angular): una cantidad física que describe el cambio de posición de un objeto cuando gira. El ángulo que gira cualquier segmento de línea (o plano) de un miembro desde su posición original hasta su nueva posición se llama desplazamiento angular del segmento de línea (o plano). d se refiere al grado de la unidad de ángulo. El significado de la función de accionamiento: 0-1 segundos, el motor no gira; 1-2 segundos, gira 360 grados; 2-2,1 segundos (movimiento del paso anterior predeterminado), gira 360 grados, 2,1-3 segundos; gira 360 grados en la dirección opuesta; 3-3,2 segundos, continúa girando 360 grados en la dirección opuesta, 4,05- 5 segundos, continúa girando 260 grados.
¿Cómo carga Linux los controladores automáticamente?
Cómo funcionan los controladores de dispositivos Linux
Linux es una variante del sistema operativo Unix. Los principios e ideas para escribir controladores en Linux son completamente similares a los de otros sistemas Unix. Diseñar un controlador en un entorno Linux es de idea simple, fácil de operar y potente en función. Sin embargo, tiene pocas funciones compatibles y solo puede depender de funciones en el kernel. Algunas operaciones comunes deben escribirse usted mismo y la depuración es necesaria. inconveniente.
Las llamadas al sistema son la interfaz entre el núcleo del sistema operativo y los programas de aplicación, y los controladores de dispositivos son la interfaz entre el núcleo del sistema operativo y el hardware de la máquina. El controlador del dispositivo enmascara los detalles del hardware del programa de aplicación. De esta manera, desde la perspectiva del programa de aplicación, el dispositivo de hardware es solo un archivo de dispositivo y el programa de aplicación puede operar el dispositivo de hardware como un archivo normal. El controlador del dispositivo es parte del kernel y se ejecuta en el estado central. Completa las siguientes funciones:
1. Inicializa y libera el dispositivo.
2. al hardware y leer datos del hardware.
3. Leer los datos transferidos por la aplicación al archivo del dispositivo y enviar de vuelta los datos solicitados por la aplicación.
4. y manejar los errores que ocurren en el dispositivo.
Hay tres tipos principales de archivos de dispositivo en el sistema operativo Linux: dispositivos de caracteres, dispositivos de bloque e interfaces de red. La principal diferencia entre un dispositivo de caracteres y un dispositivo de bloque es que cuando se realiza una solicitud de lectura/escritura a un dispositivo de caracteres, la E/S del hardware real generalmente ocurre inmediatamente. Este no es el caso con un dispositivo de bloque. memoria del sistema como búfer Cuando el usuario Si la solicitud del dispositivo del proceso puede cumplir con los requisitos del usuario, se devolverán los datos solicitados. De lo contrario, se llamará a la función de solicitud para realizar la operación de E/S real. Los dispositivos de bloque están diseñados principalmente para dispositivos lentos, como discos, para evitar perder demasiado tiempo de CPU esperando.
Como se mencionó, el proceso de usuario se ocupa del hardware real a través de archivos de dispositivo. Cada archivo de dispositivo tiene su atributo de archivo (c/b), que indica si es un dispositivo de caracteres o un dispositivo de bloque. Además, cada archivo tiene dos números de dispositivo. El primero es el número de dispositivo principal, que identifica al controlador, y el. el segundo es El número de dispositivo menor identifica diferentes dispositivos de hardware que usan el mismo controlador de dispositivo. Por ejemplo, si hay dos disquetes, el número de dispositivo menor se puede usar para distinguirlos. El número de dispositivo principal del archivo del dispositivo debe ser coherente con el número de dispositivo principal solicitado por el controlador del dispositivo al registrarse; de lo contrario, el proceso del usuario no podrá acceder al controlador.
Finalmente, debe mencionarse que cuando el proceso del usuario llama al controlador, el sistema ingresa al estado central y ya no es una programación preventiva.
En otras palabras, el sistema debe ejecutarse después de que regrese la subfunción de su controlador.
Dado que el proceso de usuario trata con el hardware a través del archivo del dispositivo, el método de operación del archivo del dispositivo no es más que algunas llamadas del sistema como abrir, leer, escribir, cerrar...., tenga en cuenta, no fopen, fread, pero ¿cómo asociar las llamadas del sistema y los controladores?
Núcleo de Linux, controlador, hardware, programa de aplicación. ¿relación?
En primer lugar debemos entender el concepto de sistema operativo El sistema operativo es una capa de programa intermediario entre el usuario y el hardware. Ya sea Linux, Windows, Android o IOS, sus funciones principales son dos:
1.
2. Conveniente para la operación del usuario.
En segundo lugar, el kernel de Linux es el programa central del sistema Linux. Completa principalmente funciones como programación de tareas, administración de memoria, administración de dispositivos IO, etc. El objetivo principal es proporcionar un funcionamiento estable y bueno. Entorno para aplicaciones. Esta es una Base.
En tercer lugar, el controlador es una forma que tiene el sistema operativo de gestionar eficazmente el hardware. Las aplicaciones son programas proporcionados para facilitar las operaciones del usuario. Por ejemplo, Shell, bashshell en Linux y shells gráficos como KDE y gnome son todas aplicaciones. Simplemente puede entender que el controlador realiza la gestión efectiva del hardware por parte del sistema operativo y que la aplicación realiza el propósito del sistema operativo de facilitar las operaciones del usuario.
Finalmente, desde una perspectiva de programación, el kernel de Linux es una biblioteca de llamadas. Las aplicaciones implementan operaciones llamando a funciones API proporcionadas por Linux. El kernel de Linux logra una gestión eficaz del hardware comunicándose con los controladores. Los detalles de programación específicos deben ser experimentados por usted mismo en la programación práctica. Esta es una descripción general.