¿Cómo quemo mi programa C en mi microcontrolador (Atmega32) de forma inalámbrica? [cerrado]

-5

El miembro de mi equipo se está mudando a una ciudad diferente. Entonces, ¿cómo puede subir sus códigos, cuando la tabla está conmigo, a muchos kilómetros de él? ¿Existe la opción de grabar los códigos en modo inalámbrico? En caso afirmativo, cuáles serán los requisitos de hardware / software. (esto es solo para Atmega32 uC)

    
pregunta AJ1993

2 respuestas

2

Debes desarrollar un gestor de arranque (o encontrar uno que se adapte a ti). Es una aplicación que ocupa parte de la memoria flash de MCU y puede escribir la otra parte con la aplicación principal y comenzar su aplicación principal. Un gestor de arranque puede utilizar cualquier variedad de métodos de comunicación. En su caso, podría ser Bluetooth, GSM, ZigBee, WLAN o un protocolo personalizado con una radio de 868MHz.

    
respondido por el filo
0

No, generalmente no es posible actualizar el firmware del dispositivo a través de la red inalámbrica, y aquí le explicamos por qué:

Desde una perspectiva de seguridad, cualquier interfaz que permita cargar el firmware del dispositivo puede ser una posible "superficie de ataque". Si es posible cargar firmware en el dispositivo a través de alguna interfaz inalámbrica anónima, los malos descubrirán esta superficie de ataque e intentarán explotar el dispositivo. Incluso si parece que su dispositivo no hace mucho, si tiene una conexión a Internet no segura y permite que cualquier persona inserte un código arbitrario, es un objetivo muy sabroso. Muchos dispositivos de "internet de las cosas", incluidas las cámaras IP, son pirateados por descuido.

Si el problema era realmente cómo permitir que el firmware se actualice por aire, es posible, pero hacerlo correctamente requiere mucho más esfuerzo y un equipo mucho más grande. Necesitaría una biblioteca criptográfica (¡no intente inventar la suya!) Y algunos certificados y una forma de validar que el firmware que se recibe es de una fuente confiable.

Si el problema que intenta resolver es cómo desarrollar sistemas integrados (hardware + software) con un equipo pequeño, con acceso remoto, hay una mejor manera. Crea una cuenta en github.com; esto es gratis / sin costo si no le importa que los archivos sean visibles públicamente. Para un proyecto final de la universidad eso es lo que yo haría. Si este es un proyecto profesional según NDA, puede obtener un repositorio privado por una tarifa nominal.

Como el proyecto tiene código fuente, necesitará un sistema SCM (Software Configuration Management) como git o subversion de todos modos, para evitar perder el valioso código fuente cuando es el momento oportuno. O git o subversión es una buena elección; Hay muchos sistemas SCM y todos funcionan lo suficientemente bien. Un sistema SCM mantiene copias de seguridad históricas de su proyecto y permite a todos los miembros del equipo leer y escribir los mismos archivos de proyecto, independientemente de la distancia.

Necesitará un segundo conjunto de hardware; tanto la placa ATC mega32 uC de destino como la placa programadora del dispositivo. Cuando el miembro de su equipo remoto realiza nuevos cambios en el repositorio de github, puede obtener la última actualización a través de github y luego usar el programador de su dispositivo local para cargar el firmware en su tablero remoto.

Esto también le brinda un poco de protección contra el "momento crítico", en caso de que se fume una de las tablas, puede intercambiar tablas.

    
respondido por el MarkU

Lea otras preguntas en las etiquetas