AT91SAM7X: бутлоадер SAM-BA от компании Atmel |
![]() |
Добавил(а) microsin | |||
Во все чипы AT91SAM7X128, AT91SAM7X256, AT91SAM7X512 на заводе встроен бутлоадер SAM-BA, прошитый в нестираемое ПЗУ (ROM). Этот бутлоадер активируется, когда FLASH-память чипа стерта. Бутлоадер SAM-BA может записать программу пользователя (а также имеет много возможностей по манипулированию памятью чипа) через различные интерфейсы чипа (подробности см. в даташите на микроконтроллер). При работе с макетной платой AT91SAM7X наибольший интерес представляет работа бутлоадера через интерфейс USB, так как такое подключение использовать проще всего. Здесь коротко рассмотрена процедура быстрого старта использования бутлоадера SAM-BA с макетной платой AT91SAM7X. Итак, процесс использования бутлоадера по шагам (на операционной системе Windows XP). 1. Сначала нужно установить (если он не был ранее установлен) драйвер SAM-BA. Драйвер можно найти на страничке Evaluation Kit for SAM7X сайта Atmel, см. SAM-BA 2.10 for Windows (XP, Vista, Seven editions) или что-то подобное, можно скачать с сайта Atmel, или см. Ссылки [1]. После установки (для этого нужно запустить sam-ba_2.10.exe) появится папка C:\Program Files\ATMEL Corporation\SAM-BA v2.10, и возможно понадобится перезагрузка. Интересующие нас драйвера находятся в папке "C:\Program Files\ATMEL Corporation\SAM-BA v2.10\drv". Этот путь нужно скормить мастеру установки нового оборудования, когда первый раз подключена плата AT91SAM7X по USB, если мастер сам по какой-то причине автоматически не найдет нужный драйвер. 2. Подключаем чистую плату (у которой стерта программа в чипе) через USB, при этом перемычка J2 USB/EXT должна стоять в положении 1-2 (питание платы через USB), внешнее питание с джека J1 должно быть отключено. Напомню, что память чипа можно стереть с помощью перемычки J4 ERASE (для этого перемычку нужно установить на 10 секунд при подключенном питании). Если макетная плата была подключена к компьютеру по USB первый раз, то обнаружится новое устройство с VID 0x03EB и PID 0x6124, и система запросит драйвер. После установки драйвера в списке Диспетчера Устройств появится новое устройство atm6124.Sys ATMEL AT91xxxxx Test Board (см. скриншот). 3. Для программирования памяти через бутлоадер Atmel понадобится программа AT91-ISP.exe (v1.12 prev release или более свежая), можно скачать с сайта Atmel, или см. Ссылки [1]. Запустите установщик Install_AT91-ISP_v1.12.exe, и после нехитрой процедуры установки у Вас появится необходимый для программирования набор утилит. [Утилита SAM-PROG] Самый простой интерфейс программирования предоставляет программа SAM-PROG v2.4. Кнопкой Browse нужно выбрать двоичный файл прошиваемого firmware, а кнопкой Write Flash файл можно записать в память чипа. После окончания записи и переподключения питания сразу начнет работать записанная программа. [Утилита SAM-BA] Намного больше возможностей по манипуляции с памятью чипа предоставляет программа SAM-BA v2.8. Кроме того, сейчас Atmel совсем забросила поддержку SAM-Prog, и в дистрибутиве SAM-BA программа SAM-PROG больше не поставляется. После запуска программы SAM-BA нужно выбрать тип подключения \usb\ARM0, указать тип платы AT91SAM7X512-EK (на макетной плате AT91SAM7X обычно установлен чип AT91SAM7X512) и нажать кнопку Connect. Примечание: к плате можно подключиться не только через USB, но и через JTAG (например, если у Вас в наличии адаптер J-Link), в этом случае нужно выбрать соединение \jlink\ARM0. Также можно подключиться через обычный COM-порт, для этого выберите его имя, например COM1. Коротко о возможностях программы SAM-BA: - можно писать/читать память FLASH чипа (Flash -> Download / Upload File). [Автоматизация операций SAM-BA с помощью TCL-скриптов] Очень удобно повторяющиеся операции программировать с помощью TCL-скриптов. Это позволит упростить рутинные действия по перепрошивке большого количества устройств. Скрипты выполняются из командной строки SAM-BA, при этом GUI-интерфейс не запускается. Пример TCL-скрипта: FLASH::EraseAll send_file {Flash} "bin/myfirmware.bin" 0x100000 0 В этом скрипте задано полностью очистить память чипа, и затем записать в память FLASH содержимое двоичного файла myfirmware.bin начиная с адреса 0x100000 (). Сам скрипт на выполнение запускается следующей командной строкой (можно прописать в BAT-файле): "%ProgramFiles(x86)%\Atmel\sam-ba_2.13\sam-ba.exe" \jlink\ARM0 at91sam7x256-ek program.tcl В этой командной строке указано подключиться к прошиваемой плате через интерфейс JTAG (\jlink\ARM0), выбрать тип платы at91sam7x256-ek, и запустить на выполнение TCL-скрипт program.tcl. В случае успешного программирования утилита sam-ba.exe не выдаст никаких сообщений, просто завершит свою работу. TCL-команды можно подсмотреть в готовых скриптах (см. в каталоге установки SAM-BA файлы с расширением *.tcl), но проще всего команды взять из лога программы SAM-BA. Вот пример такого лога (команды TCL выделены жирным шрифтом). SAM-BA console display active (Tcl8.5.9 / Tk8.5.9) (sam-ba_2.13) 1 % (sam-ba_2.13) 1 % FLASH::EraseAll -I- GENERIC::EraseAll (sam-ba_2.13) 1 % send_file {Flash} "C:/temp/firmware.bin" 0x100000 0 -I- Send File C:/temp/firmware.bin at address 0x100000 first_sector 0 last_sector 12 -I- Writing: 0xD400 bytes at 0x0 (buffer addr : 0x202A24) -I- 0xD400 bytes written by applet -I- Writing: 0xD400 bytes at 0xD400 (buffer addr : 0x202A24) -I- 0xD400 bytes written by applet -I- Writing: 0xD400 bytes at 0x1A800 (buffer addr : 0x202A24) -I- 0xD400 bytes written by applet -I- Writing: 0xB402 bytes at 0x27C00 (buffer addr : 0x202A24) -I- 0xB402 bytes written by applet Do not lock (sam-ba_2.13) 1 % [Ссылки] 1. SAM-BA 2.10 for Windows (XP, Vista, Seven editions), AT91-ISP.exe (v1.12 prev release). |