¿Cuáles son los temas importantes para la entrevista del desarrollador integrado?

Para los candidatos que contratan en puestos integrados con experiencia, les entrego un tablero ensamblado de uno de nuestros productos digitales.

Cuéntame lo que ves: aquí está el procesador, la memoria flash y la RAM. Esta es probablemente la sección de poder. Oh, aquí está el conector JTAG. Oye, ¿dónde está el JTAG para estos chips FPGA? Hmmm, no hay puerto serie? ¿Dónde están los magnéticos para Ethernet?

El diálogo evoluciona naturalmente a partir de ese momento. La conversación puede durar 10 minutos, o puede durar una hora más.

Cosas que surgen a menudo:

  • ¿Cuál fue exactamente el proceso de arranque y selección de arranque para el procesador que utilizó por última vez? ¿Cómo manejaste la programación de fábrica?
  • ¿Cuáles son los desafíos con NAND sin procesar? ¿Por qué no usaste eMMC?
  • ¿Cómo se junta un sistema de archivos? ¿Qué tuvo que personalizar en BusyBox?
  • ¿Qué significa en tiempo real? (Este puede ser profundo bastante rápido).
  • ¿Cómo se ve un controlador de dispositivo Linux? Qué contratos de API de kernel debe cumplir un controlador de dispositivo de caracteres.

Oh, la experiencia profunda con C es un hecho.

  • C Habilidades de programación (matrices, funciones, punteros, estructuras, unión)
  • Linux (script de shell básico, Makefile, compilación cruzada, IPC)
  • OS (subprocesos, procesos, Mutex, semáforo, bloqueo de giro)
  • Conocimiento básico del protocolo de comunicación como UART, SPI, I2C.
  • Programación básica del controlador del dispositivo.