Как запрограммировать Atmel SAM в полевых условиях?

Мы разработали несколько плат на базе Atmel SAM, которые мы хотим обновить в полевых условиях. У нас пока нет загрузчика (планируется в ближайшем будущем), но нам нужно убедиться, что их можно перепрограммировать, прежде чем загрузчик будет готов.

Как мне добиться такого рабочего процесса, чтобы мы могли дать нашему клиенту инструмент и бинарник, а они могли прошить его в чипы? У нас есть интерфейс SWD на платах. Существуют ли какие-либо программные средства на основе SWD для программирования флэш-памяти?

Если нет, является ли жизнеспособным вариантом SAM-BA через UART?

Для разработки мы используем Atmel Studio и Atmel-ICE.

«Если нет, является ли жизнеспособным вариантом SAM-BA через UART?» - Да, я думаю, что это так. Смотрите здесь
SAM-ICE, который предлагает Atmel, не подходит вам? Он поддерживает программирование через JTAG и SWD.
@ og1L Отладчик действительно делает это с Atmel Studio. Однако я не смог найти какой-либо программный инструмент, который просто прошивал бы заданный двоичный файл с помощью Atmel ICE без полноценной среды разработки.
Я думаю, что это также работает, например, с инструментом Seggers J-Flash. Но лично не пользовался.
Проблема также будет заключаться в том, что вам нужны драйверы, если вы используете USB. Одна компания, с которой я имел дело, использовала сокеты ZIF и отправляла предварительно запрограммированные чипы. Очевидно, что проблема с ESD, но может быть проще, чем поддерживать среду разработки?
более новые части samd2x не имеют твердой самбы, вы должны добавить загрузчик самостоятельно, а флэш-память тривиально стереть, поэтому вы не можете полагаться на нее, если у вас есть ошибки в коде или загрузке. полагаться на интерфейс swd

Ответы (3)

Вы можете использовать встроенный загрузчик, но имейте в виду, что он не зашифрован.

Ознакомьтесь с этим примечанием к приложению , чтобы получить хорошее представление о загрузчиках в целом.

Инструмент atprogram.exe запускает файл hex, bin или elf из командной строки. Его можно обернуть простым графическим интерфейсом для достижения того, что я хочу.

OpenOCD также можно использовать для прошивки hex, bin, elf: Использование OpenOCD . Но не уверен, что вы можете создать для него графический интерфейс в Windows. Кроме того, этот сумасшедший прошил Atmel SAMD21/STM32 по беспроводной сети, запустив OpenOCD на Raspberry Pi 3: STM32 OpenOCD