¿Cuál es el papel del desarrollador del controlador del dispositivo en los sistemas integrados?

Hola, creo que soy elegible para responder esta pregunta, yo mismo soy un desarrollador de controladores de dispositivo. Por lo tanto, al llegar a la pregunta, ¡permítanme explicar primero qué es “Controlador de dispositivo”!

Si miras a tu alrededor, hay numerosos microcontroladores disponibles en el mercado, Intel, NXP, Freescale, Infineon, Microchip, Toshiba, ¡la lista sigue y sigue! ¿Imagínese si un desarrollador de aplicaciones tiene que leer el manual del nuevo dispositivo cada vez antes de continuar con el desarrollo de su aplicación?

No solo tomaría mucho tiempo escribir nuevas funciones para acceder a registros, memoria, E / S y otros periféricos de ese microcontrolador, sino que también haría que la aplicación dependiera del hardware subyacente.

¡Aquí es donde un controlador de dispositivo es útil! ¿Quién más conocerá el microcontrolador mejor que el propio fabricante? Por lo tanto, la mayoría de las compañías de semiconductores escribirán y entregarán los controladores del dispositivo junto con el dispositivo (microcontrolador).

Los ingenieros que suelen escribir este controlador se denominan “Desarrollador de controladores de dispositivo”. Las principales responsabilidades de dichos ingenieros son:

  1. Comprensión profunda del hardware (microcontrolador) .-
    1. Cómo funciona el periférico.
    2. Conocimiento de todos los registros disponibles en el microcontrolador para un determinado periférico.
    3. ¿Cuáles son los diferentes modos de operación?
    4. ¿Limitaciones de hardware, si hay alguna?
    5. Cualquier enfoque nuevo que pueda considerarse sobre la IP actual.
  2. Desarrolle un diseño basado en los requisitos (proporcionados por el cliente o especificados por algún estándar, como AutoSar).
  3. Escriba el controlador según el diseño.
  4. Finalmente, pruebe el controlador con escenarios de prueba de muestra.
  5. Otras tareas básicas como:
    1. Asegurar que todos los requisitos estén cubiertos en Diseño y Código.
    2. Realización de análisis estático del código.
    3. Asegurar la “complejidad ciclomática” del conductor.
    4. Cálculo de la profundidad de la pila y el rendimiento del controlador.
    5. Corrección de errores.

Esto es todo lo que puedo pensar ahora. Lo editaré si se me ocurre algo más.

Editar 1:

Complejidad ciclomática en la complejidad del código (no de ramas, argumentos pasados ​​a una función, etc.). Algunos estándares, como MISRA, especifican cierto límite, como cc <15, para una función para garantizar que opere con seguridad en condiciones extremas.

Profundidad de la pila: como puede saber, en C todas las variables relacionadas con el tiempo de ejecución, las llamadas a funciones se almacenan en la pila. La memoria es la principal limitación en un sistema embebido, un controlador de dispositivo debe asegurarse de que su código no ocupa una gran cantidad de pila, lo que priva a la aplicación de hambre.

Rendimiento: es el tiempo que lleva completar una operación (transmisión de N bytes a través de SPI, conversión de ADC, etc.). Para conocer más en profundidad, puede leer sobre el concepto del modo Pulgar y Normal en ARM.

  • Leer hojas de datos de dispositivos.
  • Desarrolle un módulo que pueda leer / escribir en dispositivos.
  • Integre este módulo en OS / Firmware / RTOS.

Entonces, el desarrollador del controlador del dispositivo se ocupa de la programación de nivel inferior que se comunica con el hardware.

Buen artículo sobre esto: http://bit.ly/2mThv4I

El programa principal del sistema integrado es el programa IO. En el sistema integrado, el programa IO es ilimitado. El desarrollo del programa IO a partir de chatarra es difícil. El programa IO está estandarizado mediante el desarrollo de un controlador de dispositivo.

More Interesting

¿Cuál es el mejor instituto para capacitación en sistemas integrados en Noida con buenas ubicaciones?

¿Qué herramientas debo aprender en MATLAB como ingeniero integrado?

Cómo hacer mi carrera en sistemas integrados y robótica

¿Qué sucede realmente dentro de un Arduino Uno R3 cuando ejecuto el código para parpadear un LED?

En una startup de hardware (ME, EE, FW), ¿cuál debería ser la diferencia entre un Director de Ingeniería y un Ingeniero Jefe?

¿Cuáles son los libros que necesito leer antes de leer la hoja de datos de los microcontroladores y programar el sistema integrado?

¿Cómo se compara el configurador de código de microchip con el cubemx de stm32?

¿Cuáles son los beneficios que obtendré al asistir a la conferencia / exposición International Embedded Systems?

Cómo enriquecer mis sistemas integrados y conocimiento de robótica

Aprendí sistemas integrados a través del modo en línea, en lugar de unirme a cualquier centro de capacitación. ¿Puedo solicitar trabajos integrados? ¿Cómo?

¿Qué tableros (AVR, Rasph Pi3, Arduino o cualquier otro) deberían comenzar como principiantes teniendo en cuenta las tendencias actuales de la industria?

¿Cuáles son las cosas que uno debe aprender antes de actualizar de Arduino a otro microcontrolador como 8051?

¿Existe un informe técnico público que describa la red de computadoras integradas en un automóvil moderno?

¿Debo aprender Embedded C o Java?

¿Cuáles son los mejores institutos de capacitación para IoT y sistemas integrados en India?