¿Cuál es la diferencia entre firmware y driver?

El firmware es un software que controla un sistema, y ​​la funcionalidad del firmware abarca desde la realización de tareas básicas como controles mínimos de E / S hasta un sistema de software completo que se ejecuta con un sistema operativo simple o sin sistema operativo, con programador, gestión de memoria, etc.
Por ejemplo, el firmware se ejecuta dentro del decodificador de su televisor y, de hecho, su teléfono inteligente tiene paquetes de firmware para controlar varios componentes móviles como núcleo de gráficos, módem, inalámbrico, bluetooth, etc.

Un controlador, por otro lado, generalmente es parte del sistema operativo que realiza una tarea específica de controlar un componente de hardware como pantalla o controlador usb, etc., y proporciona una interfaz para usar el hardware por sistema operativo y aplicaciones.
El sistema operativo dictará un diseño e interfaz estándar para que el controlador se adhiera, como inicializar / desinicializar el hardware, o leer / escribir en el hardware, o realizar cualquier operación específica de hardware , etc.

Entonces, si un firmware está controlando su decodificador de TV, tendrá los siguientes componentes de hardware y controladores de software para controlarlos.

  • controlador de lector de tarjeta inteligente: para leer / acceder a la tarjeta inteligente
  • un controlador ADC: para convertir la señal de televisión analógica en datos de televisión digital
  • Códecs multimedia (no controladores en realidad, sino componentes multimedia): para descomprimir datos comprimidos de audio y video en bits, en datos sin procesar que pueden enviarse a dispositivos de video / audio.
  • Video, controladores de audio: para enviar video, datos de audio a la pantalla (TV) y dispositivo de códec de audio (altavoz, auriculares) respectivamente.
  • Controlador USB: para controlar el puerto USB y acceder a cualquier dispositivo USB conectado.

More Interesting

¿El sistema wifi está integrado o necesitamos un sistema operativo incorporado para wifi?

Cómo probar sin una especificación

¿Qué valiosos consejos le darías a un ingeniero de pregrado de sistemas integrados?

¿Qué sucede cuando no usamos la palabra clave 'volátil' para definir registros de hardware en la programación de sistemas integrados?

¿Por qué elegiría la programación de ensamblaje cuando tiene la opción de codificación C?

¿Hay algún microcontrolador que podamos codificar en Python?

¿Qué instituto, excepto VECTOR, es el mejor para la capacitación de sistemas integrados con buenas ubicaciones?

Aparte del hobby DIY, ¿hay algún uso comercial de Arduino, Raspberry Pi, BeagleBone, etc.?

¿Debería conocer a Arduino y Raspberry Pi para hacer carrera en un sistema embebido?

¿Cuál fue el mejor libro para aprender sobre los sistemas integrados para principiantes?

¿Cuál es el mejor microcontrolador para mi proyecto, ARM, PIC32 u otro?

Dado que la generación automática de código C o C ++ para sistemas integrados se ha generalizado y la codificación manual está mal vista en muchas partes de la industria automotriz, ¿podría un desarrollo similar afectar a otras partes de la industria y hacer que las habilidades de programación sean inútiles eventualmente?

¿Cuánto conocimiento de electrónica es necesario para que un graduado de CS trabaje con sistemas embebidos?

¿Cómo se programan los quadcopters?

¿Es necesario aprender sobre microcontroladores y microprocesadores para sistemas integrados?