Cómo programar un dispositivo incrustado

Parecía que nadie entendía tu pregunta.

El sistema integrado es una clasificación enorme . Todo lo que no cae en las categorías de “computadoras” o “dispositivos móviles” puede clasificarse como sistema integrado. Un “dispositivo integrado” puede ser una computadora con todas las funciones con un sistema operativo (Android, Linux, incluso Windows 10), o una placa de circuito primaria con microcontrolador de 8 bits, 4KB de códigos y 128 bytes de RAM

PD: generalmente clasificamos PLA o FPGA como “controlador digital” en lugar de “sistemas integrados”.

Cuando hablamos de “sistema integrado”, hay tres categorías principales:

I. Sistema de metal desnudo :

El microprocesador es tan primario que ni el kernel ni el RTOS están disponibles. Debe escribir el código desde cero, y el microprocesador solo comenzará desde la función main() en su código después de reiniciar. Puede acceder directamente a cada registro de hardware y señales analógicas, y debe definir las rutinas de interrupción de hardware usted mismo.

Después de terminar la codificación, compila el código con un kit de herramientas dedicado (como IAR Embedded Workbench ).

El kit de herramientas generará archivos binarios a partir de su código. Luego, conecta un programador en serie al circuito y carga el archivo binario en el microprocesador.

II RTOS (SO en tiempo real) / Microkernels

Básicamente no es diferente de los sistemas de metal desnudo, pero los microprocesadores son lo suficientemente potentes como para manejar el cambio de tareas complejas.

La programación en estos sistemas es casi la misma que la del sistema bare metal, aunque debe seguir la regla de los marcos RTOS. Usted escribe funciones como tareas, configura el temporizador, el planificador y la prioridad multitarea según la regulación RTOS. Después de terminar la codificación, compila su código y la biblioteca de marco RTOS, con el kit de herramientas dedicado. El resto es casi idéntico a los sistemas de metal desnudo.

Algunos sistemas tienen suficientes recursos (RAM, flash, microprocesador) para admitir la programación OTA (inalámbrica), que le permite cargar códigos de forma remota, a través de conexiones cableadas o inalámbricas. Esto eliminaría la necesidad de contactos físicos cada vez que necesite actualizar su aplicación; sin embargo, es posible que aún necesite una herramienta de programación especial (software y / o hardware), ya que este tipo de sistemas generalmente no son compatibles con el sistema de archivos.

III. Kernel completo (generalmente Kernel monolítico)

Puede encontrar Linux de diferentes distribuciones (OpenWRT, Ubuntu, CentOS, Degian, Ångstrom, etc.), Windows 10 IoT core o Android. Usted escribe códigos para estos dispositivos de la misma manera que escribe aplicaciones “normales” para la plataforma específica: C / C ++ y GNU bintool para * nix, Virtual Studio para Windows y Java para Android.

Después de compilar su código, puede transferir los archivos ejecutables al dispositivo de varias maneras: cable RS232 / USB, unidad flash USB, tarjeta MicroSD, TCP / IP (tftp / ftp / scp) o incluso internet (por ejemplo, Google Play Store ) Se utilizarán diferentes métodos para diferentes dispositivos. Debe leer el manual para aprender a usarlo.

IV. Sistemas patentados

El vendedor no reveló las especificaciones de hardware y la arquitectura del software, porque no quieren que hackea sus sistemas. Y debe respetar el acuerdo de licencia de uso, no piratear sus sistemas.

Ciertamente no apruebo el comportamiento de piratería, pero si realmente quieres hackear tu TV, lo que debes hacer es ingeniería inversa.

Reconstruye el diagrama de circuitos del controlador central completo sondeando los cables conductores en la placa de circuito, uno por uno. Y desolda los chips de CPU / memoria e intenta descargar el firmware a su PC y desarmarlo.

El ingeniero inverso necesita mucho tiempo y experiencia. Puede tomar años o incluso décadas para que un principiante aprenda toda la habilidad. Y, por supuesto, su televisor se desintegrará durante el proceso.

Así que marque mis palabras: si no está satisfecho con su televisor inteligente, compre uno nuevo que se ajuste a sus necesidades . No necesitas criar una vaca solo para la leche.

Si está realmente interesado en el sistema embebido, puede comenzar con los conceptos básicos del sistema embebido, es decir, comenzar con Arduino o cualquier placa similar.

Arduino es el kit de microcontrolador de placa única donde puedes jugar con LED y muchos más proyectos geniales que puedes hacer con una simple programación en C. Embedded no es un curso que puedas aprender en pocos meses, es una habilidad que necesita tiempo.

Por lo tanto, le sugiero que comience con un muy básico de

Microcontrolador y microprocesador de interfaz y programación.

Creo que quiere hackear el dispositivo y personalizarlo totalmente según su propia configuración, y realizarlo de la manera que desee, con cosas como nuevos menús, opciones de pantalla, fuentes, colores, etc.

Mi recomendación no es hackear el dispositivo. La razón es el código en el CPLD o los controladores que tiene un televisor protegido por software, hardware y por ley. Además, la configuración de los pines de los chips integrados es desconocida o muy difícil de encontrar, ya que están nuevamente protegidos por el fabricante. A veces incluso rascan el número de parte para que sea casi imposible de identificar. Si tiene suerte de encontrar el número de pieza y las configuraciones de los pines, intente conectar cables y pines de soldadura que estén separados por menos de un tercio de milímetro … es la receta de un desastre. Ahora, algunos televisores tienen un puerto USB etiquetado para “servicio”. No estoy seguro de cuánto puede hacer con ese puerto, pero creo que es solo para el diagnóstico utilizando equipos y software patentados por el fabricante. Si desea probar esta opción, debe comunicarse con un técnico y ver cómo pueden ayudarlo con eso.

Creo que es mucho más fácil diseñar y construir su propio dispositivo “Roku” y conectarlo al HDMI de la televisión. No estoy seguro de cuánto Arduino es lo suficientemente potente para la tarea, pero estoy seguro de que los fabricantes como TI, dispositivos analógicos o ST tienen chips de interfaz que sin duda ayudarán a construir su dispositivo.

Por favor actualízame con tu esfuerzo. Ahora estoy intrigado de cuán lejos puedes llegar. ¡Buena suerte!

El mundo de la programación de dispositivos integrados es increíble. Pruebe con alguno simple, como PICkit ™ 3 y DM240315-2 de Microchip. Vale la pena intentarlo.

Puede crear su propia aplicación de alto nivel, como las instaladas en su televisor, como Netflix y Kodi. Este tipo de aplicaciones se pueden crear y ejecutar en su televisor. Si está buscando reescribir el firmware del televisor, eso sería casi imposible de hacer, ya que no puede crear firmware para un chip sin una amplia información sobre el funcionamiento del televisor y cómo interactúa con el resto de los conjuntos de chips a bordo. Esto normalmente llevaría años de desarrollo para que un gran equipo de ingenieros diseñara y creara.

More Interesting

¿Cuál es la diferencia entre hacer una maestría en sistemas embebidos y una en informática?

¿Cuáles son los principios básicos de un microcontrolador 8051?

¿Qué tipo de conocimiento se debe adquirir para el rol de programador de controladores de dispositivos integrados como un programa más reciente?

¿Qué sitio es el mejor para practicar preguntas estándar de programación en C que podrían llevarme a involucrarme en el desarrollo de sistemas embebidos?

¿Es el sistema embebido lo mismo que una computadora de placa única?

¿Puedo obtener la lista de proyectos en sistema embebido?

Quiero entrar en robótica y sistemas embebidos. Tengo muy poca idea sobre la programación (solo programación básica de arduino). ¿Como empiezo?

Cómo relacionar Kernel Development, Embedded Systems, Robotics and AI

¿Puedo hacer una placa de desarrollo de microcontroladores y un programador usb solo con un microcontrolador?

¿Qué tipo de pasantías son mejores si uno está interesado en sistemas integrados, investigación o capacitación industrial?

¿Qué sistema operativo Linux es mejor para sistemas integrados para principiantes?

¿Cuáles son los mejores institutos de formación industrial en JAVA y sistemas integrados en Delhi o Noida?

¿Cuál es la placa básica del kit de microcontrolador para practicar? ¿Vale la pena hacer una pasantía en sistemas integrados o no?

¿Cuál es la mejor manera de aprender Linux embebido? ¿Es razonable asistir a un curso de introducción de Linux incrustado a un precio de US $ 400?

¿Cuál es la diferencia entre PIC, AVR, ARM y microcontroladores Arduino?