¿Cuáles son los métodos de control de concurrencia en los controladores de Linux?
Se necesita cierto esfuerzo para aprender bien:
El controlador de dispositivo Linux es parte del kernel de Linux. Es un medio técnico que se utiliza para proteger los detalles del hardware y proporcionar interfaces estándar. la capa superior. Para poder escribir controladores de calidad relativamente alta, los ingenieros deben tener los siguientes conocimientos:
1. Estar familiarizado con el rendimiento del procesador.
Por ejemplo: arquitectura del procesador. lenguaje ensamblador, modo de trabajo, manejo de excepciones, etc. Para los principiantes, si no están familiarizados con el método de escritura de controladores, no pueden concentrarse en este elemento primero, ya que puede afectar su interés en los controladores de dispositivos debido a su naturaleza aburrida y abstracta. A medida que se familiarice con la redacción de controladores, naturalmente se dará cuenta de la importancia de esto.
2. Dominar el principio de funcionamiento del hardware y el protocolo de comunicación del objetivo del controlador.
Tales como: controlador de puerto serie, controlador de tarjeta gráfica, códec de hardware, controlador de tarjeta de memoria, comunicación I2C, SPI. comunicación, comunicación USB, comunicación SDIO, comunicación I2S, comunicación PCI, etc. El requisito previo para escribir controladores de dispositivos es comprender cómo funciona el dispositivo, por lo que la importancia de estos contenidos es evidente. Pero esto no significa que deba estar familiarizado con los métodos operativos de todos los dispositivos antes de poder escribir controladores. Sólo necesita comprender el hardware que desea controlar.
1. Domine los métodos de control del hardware
Por ejemplo: interrupciones, sondeo, DMA, etc. Por lo general, un controlador de hardware tiene múltiples métodos de control que necesita según las necesidades del sistema. Rendimiento. Elija un método de operación razonable. En la etapa de aprendizaje inicial, el propósito es realizar funciones y el orden de dominio debe ser: polling-gt; A medida que avanza el estudio, es necesario considerar exhaustivamente los requisitos de rendimiento del sistema y adoptar métodos apropiados.
2. Buena base de programación en lenguaje GNU C
Tales como: punteros en lenguaje C, estructuras, operaciones de memoria, listas enlazadas, colas, pilas, programación mixta en C y ensamblador, etc. Estas sintaxis de programación son la base para escribir controladores de dispositivos y son muy importantes tanto para principiantes como para usuarios experimentados.
3. Buenos conceptos del sistema operativo Linux
Tales como: multiproceso, multiproceso, programación de procesos, preferencia de procesos, contexto de procesos, memoria virtual, operación atómica, bloqueo, suspensión. , conceptos de sincronización y las relaciones entre ellos. El uso de estos conceptos y métodos en los controladores de dispositivos es la característica más importante de los controladores de dispositivos Linux que distingue la programación de microcontroladores. Sólo entendiéndolos se pueden escribir controladores de alta calidad.
4. Dominar las interfaces de escritura de controladores de dispositivos en el kernel de Linux
Por ejemplo: cdev para dispositivos de caracteres, gendisk para dispositivos de bloques, net_device para dispositivos de red y dispositivos framebuffer basados en. estas interfaces básicas fb_info, mtd_info del dispositivo mtd, tty_driver del dispositivo tty, usb_driver del dispositivo usb, mmc_host del dispositivo mmc, etc.