¿Cómo programo un Atmel SAM en el campo?

Hemos diseñado algunas placas basadas en Atmel SAM que queremos que sean actualizables en el campo. Todavía no tenemos un cargador de arranque (planeado en un futuro cercano), pero debemos asegurarnos de que sean reprogramables antes de que el cargador de arranque esté listo.

¿Cómo puedo lograr el flujo de trabajo en el que podemos darle a nuestro cliente una herramienta y un binario, y ellos pueden flashearlo en los chips? Tenemos interfaz SWD en las placas. ¿Hay alguna herramienta de software basada en SWD para programar flash?

Si no, ¿SAM-BA sobre UART es una opción viable?

Para el desarrollo usamos Atmel Studio y un Atmel-ICE.

"Si no, ¿SAM-BA sobre UART es una opción viable?" - Sí, creo que lo es. Ver aquí
¿El SAM-ICE que ofrece Atmel no hará lo que necesita? Soporta programación vía JTAG y SWD.
@og1L El depurador lo hace con Atmel Studio, de hecho. Sin embargo, no pude encontrar ninguna herramienta de software que simplemente flashee un binario determinado usando Atmel ICE, sin el entorno de desarrollo completo.
Creo que también funciona con, por ejemplo, la herramienta Seggers J-Flash. Pero no lo he usado personalmente.
El problema también será que necesita controladores si también usa usb. Una empresa con la que traté usaba enchufes ZIF y enviaba chips preprogramados. Obviamente, ESD es un problema, pero puede ser más fácil que admitir el entorno de desarrollo.
las partes más nuevas de samd2x no tienen un samba sólido, usted mismo debe agregar un cargador de arranque y el flash es trivial de borrar, por lo que no puede confiar en él si tiene errores en el código o en la descarga. confiar en la interfaz swd

Respuestas (3)

Puede utilizar el gestor de arranque integrado, pero tenga en cuenta que no está cifrado.

Consulte esta nota de la aplicación para obtener un buen tratamiento de los cargadores de arranque en general.

La herramienta atprogram.exe muestra un archivo hexadecimal, bin o elf desde la línea de comandos. Puede ser envuelto por una GUI simple para lograr lo que quiero.

OpenOCD también se puede usar para flashear hex, bin, elf: uso de OpenOCD . Pero no estoy seguro de si puede crear una GUI para él en Windows. Además, este loco ha flasheado un Atmel SAMD21/ STM32 de forma inalámbrica ejecutando OpenOCD en Raspberry Pi 3: STM32 OpenOCD