8-900-374-94-44
[email protected]
Slide Image
Меню

Sam prog – SAM-BA In-system Programmer

AT91SAM7X: бутлоадер SAM-BA от компании Atmel | arm

Во все чипы 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).
— можно писать/читать память SRAM чипа (SRAM -> Download / Upload File).
— сравнить файл с содержимым памяти.
— можно запускать набор предопределенных действий — установить загрузку с FLASH (GPNVM2), установить загрузку с ROM (GPNVM2), запретить/разрешить детектор пропадания питания (GPNVM0), запретить/разрешить сброс чипа при срабатывании детектора пропадания питания (GPNVM1), разрешить доступ к FLASH, разрешить применение бита защиты, стереть всю память (GPNVM0..GPNVM2 здесь означают имена соответствующих энергонезависимых фьюзов, все операции делаются через Flash -> Scripts -> выбрать тип действия из выпадающего списка -> Execute).
— можно просмотреть в виде дампа содержимое памяти по указанному адресу (AT91SAM7X256 Memory Display -> Start Address/Size in byte(s) -> Refresh).

— можно выполнить набор некоторых действий и записать их в виде скрипта, который потом можно запустить (меню Script 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).
2. Макетная плата AT91SAM7X.
3. SAM-BA boot agent.

microsin.net

Karma-SAM3S. Как прошить ARM от Atmel. Ч1

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

В этом материале я как раз расскажу, как прошить микроконтроллер SAM3S4B с помощью загрузчика на примере платы Karma-SAM3S. Описанную процедуру можно будет применить и к остальным ARM`ам фирмы Atmel, хотя могут быть небольшие отличия.

Микроконтроллеры серии SAM3S имеют встроенный загрузчик, который позволяет записывать прошивку по USB или UART0 без применения дополнительного оборудования. Загрузчик хранится в постоянной памяти (ROM) и его нельзя стереть. 

Чтобы микроконтроллер запустил при старте загрузчик, нужно кратковременно нажать на кнопку ERASE (на время большее 200 мс), а затем сбросить микроконтроллер. Это можно сделать, дергая выключатель питания или с помощью кнопки RESET. Оба варианта дадут одинаковый результат — микроконтроллер очистит флэш память, сбросит бит, определяющий источник загрузки, и при следующем запуске загрузится из ROM.

Для загрузки прошивки по USB к тактовой частоте микроконтроллера SAM3S предъявляются определенные требования. Микроконтроллер должен тактироваться от кварцевого резонатора с частотой 11,289; 12,00; 16,00 или 18,432 МГц. При загрузке прошивки по UART0 никаких требований нет. 


На плате Karma-SAM3S установлен кварц с частотой 12 МГц. С таким кварцевым резонатором плата стабильно прошивается. 

Для начала нам нужно установить на компьютер одну из утилит, позволяющих загружать прошивку. На сегодняшний день мне известно только две таких утилиты — SAM-BA и BOSSA. 

SAM-BA — это официальная программа фирмы Atmel, которая поддерживает все их ARM микроконтроллеры — SAMA5, SAM3, SAM4, SAM7 и SAM9. Скачать SAM-BA можно на сайте Atmel, но предварительно нужно зарегистрироваться. Также на сайте есть описание SAM-BA.

BOSSA — это неофициальная программа, созданная каким-то энтузиастом. Список поддерживаемых микроконтроллеров у нее небольшой, но SAM3S4B она поддерживает. Скачать BOSSA можно здесь. На сайте автора есть подробное описание BOSSA.

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

Я попробовал обе программы и пока остановил свой выбор на BOSSA. Она занимает мало места, у нее простой интерфейс и она стабильнее работает. Но SAM-BA в любом случае нужно скачать, чтобы установить USB драйвер для микроконтроллера SAM3S4B. 

Далее речь пойдет о работе в ОС Windows. 

После скачивания и установки программы SAM-BA и патча, нужно поставить драйвера. Если загрузка прошивки будет выполняться по USB, то процедура выглядит следующим образом. 

Подсоединяем плату Karma-SAM3S к компьютеру по USB (этот разъем на плате подписан). Подаем питание, кратковременно нажимаем кнопку ERASE, а затем RESET. Микроконтроллер запустит загрузчик, а операционная система обнаружит новое устройство и начнет поиск драйверов. 

Драйвера лежат в папке, куда была установлена программа SAM-BA. Например у меня путь к драйверам такой: C:\Program Files (x86)\Atmel\sam-ba_2.12\drv

В идеале операционная система сама найдет нужные драйвера и через некоторое время в диспетчере устройств в разделе порты появится AT91 USB to Serial Converter. Однако, скорее всего придется указывать путь вручную. 


Для загрузки прошивки через USB-UART преобразователь, установленный на плате Karma-SAM3S, нужно поставить драйвера для микросхемы CP2102. Их можно скачать с сайта производителя — SiLabs.


Когда драйвер установлен, можно запускать программу SAM-BA. 


При запуске SAM-BA появится окно, в котором нужно выбрать порт и тип платы. Если не знаете номер порта, то его можно посмотреть в диспетчере устройств. Тип платы нужно установить такой — at91sam3s4-ek.


После нажатия кнопки Connect должно появится основное окно программы SAM-BA. Если этого не произошло или открылось окно с предупреждениями — перезагрузите микроконтроллер и снова запустите SAM-BA.


Чтобы загрузить прошивку, на вкладке Flash кажите путь к файлу и нажмите на кнопку Send File. Обратите внимание файл прошивки имеет расширение bin. 


Когда прошивка будет загружаться, откроется окно Lock region(s), которое предложит установить Lock биты для защиты флэш памяти. Нажимаем нет. 


Когда загрузка завершится, запускаем скрипт Boot from Flash (GPNVM1), чтобы микроконтроллер запускался из флэш памяти, и нажимаем на плате кнопку Reset. 

Все, микроконтроллер будет выполнять записанную в него программу.


Чтобы повторно записать прошивку в микроконтроллер, нужно закрыть программу SAM-BA, активировать загрузчик микроконтроллера и снова запустить ее. К сожалению, без перезагрузки SAM-BA не устанавливает связь с микроконтроллером. По-крайней мере я не понял, как это сделать и поэтому она мне и не нравится. 

Устанавливаем программу BOSSA и драйвера (описано выше). 

Подключаем плату Karma-SAM3S к компьютеру, используя один из USB разъемов. Активируем загрузчик микроконтроллера и запускаем программу BOSSA. 

Нажимаем кнопку Auto-Scan, чтобы BOSSA установила связь с загрузчиком микроконтроллера. Если это удалось, то внизу программы отобразится статус «Connected» и микроконтроллер, который определился, — «ATSAM3S4». Если связь не установилась, нужно сбросить микроконтроллер и снова нажать Auto-Scan. 

Также можно выбрать последовательный порт вручную. 

Далее указываем путь к прошивке (*.bin) и нажимаем Write. Начнется загрузка. 


По окончании загрузки программа выдаст информационное сообщение «Write completed successfully». Закрываем это окошко, а затем сбрасываем микроконтроллер кнопкой RESET. Все, микроконтроллер будет выполнять записанную в него программу. 

Для повторной записи прошивки нужно активировать загрузчик микроконтроллера и нажать в программе BOSSA кнопку Auto-Scan. Если BOSSA не подключится к загрузчику с первого раза, нужно сбросить его и снова нажать Auto-Scan. Как правило, со второго раза программа устанавливает связь. 

Описание платы Karma-SAM3S
Скачать SAM-BA для ARM
Скачать BOSSA для ARM
Скачать драйвер для CP2102

chipenable.ru

Разработка для AT91SAM на бесплатном ПО | arm

Большинство инструментария на платформе ARM коммерческие, такие как IAR® EWARM [4] или ARM RealView®. Конечно, они наиболее удобны, и интегрируют в себе все инструменты, необходимые для хорошей поддержки разработки встраиваемых систем. Сегодня появляются альтернативные, открытые решения (GNU), которые становятся все более конкурентноспособными. Однако в сравнении с коммерческими предложениями GNU-решения испытывают недостаток простоты для установки и использования конечным потребителем.

Цель этого документа (перевод [1]) — решить эту проблему путем предоставления пошагового руководства для настройки рабочего окружения, основанного на инструментарии GNU для семейства микроконтроллеров Atmel AT91. Это дает следующие возможности:

• Компиляция и сборка проектов с использования тулчейна компилятора GNU (gcc).
• Отладка с помощью эмуляторов Atmel SAM-ICE™ [6] и GDB-сервера SEGGER [8].
• Программирование памяти с помощью утилиты SAM-BA™ [2], инструментария ISP (In-Site Programming, т. е. программирование «по месту», прямо в системе) от компании Atmel.
• Интеграция этих задач в среде разработки Eclipse™ [7].

Дополнительно использование этого инструментария демонстрируется на готовом примере проекта для микроконтроллеров Atmel AT91. Рассматривается импортирование проекта, его компиляция, отладка и прошивка полученного кода firmware в память микроконтроллера.

[3. Используемые компоненты]

Нужно скомбинировать друг с другом несколько разных пакетов, чтобы получить полнофункциональную рабочую среду, сравнимую с коммерческими. В этой секции описывается, как установить каждый такой компонент инструментария GNU.

3.1. SAM-ICE. Atmel SAM-ICE это эмулятор JTAG, разработанный для программирования и отладки микроконтроллеров Atmel AT91. Этот эмулятор может следующее:

• Поддерживает все микроконтроллеры Atmel, основанные на ядрах AT91 ARM7™/ARM9™.
• Не требуется отдельный источник питания для эмулятора, он получает питание от USB (требуется питание только для системы, где установлен программируемый микроконтроллер).
• Максимальная скорость JTAG составляет 8 МГц.
• Автоматическое определение скорости.
• Поддержка нескольких устройств (микроконтроллеров).
• Полная совместимость со стандартом plug and play.
• Стандартный 20-выводный коннектор JTAG.
• Поддержка адаптивного тактирования.

Рис. 3-1. Оригинальный JTAG-отладчик компании Atmel (SAM-ICE Emulator for AT91 Microcontrollers).

Рис. 3-1a. Дешевый китайский клон G-Link [5], который работает ничуть не хуже (в том числе и в среде IAR).

3.2. SAM-BA™. SAM-BA (Boot Assistant) это один из инструментов, предоставленный для системы AT91 In-System Programming (ISP) компании Atmel. Это предоставляет простой способ для программирования семейства микроконтроллеров AT91 и использованием графического интерфейса или интерфейса командной строки.

Утилита SAM-BA также позволяет создавать мощные скрипты, которые можно потом запускать из командной строки, автоматизируя тем самым многие задачи прошивки микроконтроллеров. Эти скрипты могут быть написаны программистом или записаны в графическом интерфейсе.

Рис. 3-2. Главное окно утилиты SAM-BA.

Примечание: есть также очень простая утилита программирования Atmel, которая была к сожалению заброшена: SAM-PROG. Она очень удобна для повседневного использования, однако страдает глюками, иногда работать отказывается.

3.3. Eclipse™. Это открытая (open-source) интегрированная среда разработки (Integrated Development Environment, IDE) которая изначально была предназначена для программирования на языке Java® (сама среда написана также на Java). Однако благодаря модульному устройству этой среды она была приспособлена для программирования и отладки программ на C/C++ для многих платформ. В Eclipse также встроена поддержка систем управления версиями (таких как CVS и SVN).

Из-за того, что сама Eclipse основана на архитектуре Java, её можно использовать на любой операционной системе, которая поддерживает Java Runtime Environment (JRE). Так что теперь можно работать в Eclipse не только под Microsoft Windows, но и на Linux.

Рис. 3-3. Скриншот основного окна Eclipse.

Подробную информацию о системе Eclipse можно найти на сайте её проекта [10].

3.4. YAGARTO. Этот инструментарий (название является аббревиатурой от «Yet Another GNU ARM Toolchain») реализован на основе GNU ARM toolchain. В него входят компилятор C/C++ (gcc/g++), ассемблер (as), линкер (ld) и отладчик (gdb).

В сравнении с другими тулчейнами GNU для ARMs, у YAGARTO достоинство в том, что он скомпилирован специально для использования на платформе Windows. Поэтому в сравнении с другими реализациями, использующие портирование нескольких слоев API Unix® (наподобие Cygwin или MinGW), YAGARTO более удобна для использования, потому что двоичный код её утилит специально предназначен для Windows.

Кроме того, все инструменты, предоставляемые YAGARTO, полностью совместимы с системой Eclipse. Это еще одна причина, чтобы выбрать именно YAGARTO в сравнении с другими инструментами GNU.

Более подробно про YAGARTO см. [11]. Про утилиты GNU см. [12].

3.5. Make. Большинство проектов для инструментария GNU (включая примеры программ от Atmel) используют утилиту make для обслуживания процесса сборки. Утилита дает команды компилятору и линкеру, какие файлы нужно компилировать или линковать, и как это должно происходить в соответствии с правилами, записанными программистом в скрипте makefile. Достоинство утилиты make в том, что с ней можно использовать любой тулчейн, что делает обслуживание сборки проектов легко портируемым между разными средствами разработки.

Поскольку тулчейн YAGARTO не предоставляет make, то для этого должен быть загружен и установлен отдельный пакет. Проект GnuWin32 [12] предоставляет стандартные порты инструментов GNU для Windows, что включает make.

Руководство GNU дает больше информации по утилите make и файлам makefile (руководство можно найти по ссылке [13]). Для информации по другим инструментам, находящимся в пакете GnuWin32, см. [14].

3.6. GDB Server. Сервер GDB был разработан компанией SEGGER, чтобы отладчик GNU GDB мог через сеть подключаться к микроконтроллеру ARM через устройство адаптера JTAG, совместимое с JLink [5]. Сервер GDB создает сервер TCP/IP в локальной сети, поэтому возможна отладка не только на машине, где работает сервер GDB, но и на другой машине, которая подключена к этой же локальной сети.

Рис. 3-4. Главное окно сервера GDB.

GDB Server это коммерческий продукт; однако компания Atmel получила лицензию для своего эмулятора SAM-ICE. Таким образом, сервер GDB можно использовать без ограничений вместе с адаптером SAM-ICE и микроконтроллером AT91.

Больше информации про GDB Server можно найти на сайте segger.com [8].

[4. Установка]

4.1.1. Получение SAM-BA. Поскольку SAM-BA это часть инструментария Atmel ISP, то SAM-BA должен быть получен после загрузки и установки всего пакета. Последняя версия ISP доступна на сайте Atmel [2].

4.1.2. Установка SAM-BA. Пакет Atmel ISP предоставляет программу инсталлятора с именем файла «Install AT91-ISP vX.Y.exe» (где X.Y номер версии). Выполните на нем двойной клик мышью для запуска мастера процесса установки.

Рис. 4-1. Экран мастера установки AT91 ISP.

Процесс установки очень прост и прямолинеен. Обратите внимание, что если у Вас уже установлена какая-то версия ISP, то она должна быть деинсталлирована (это будет выполнено автоматически программой установщика).

После того, как мастер установки завершит работу, утилита SAM-BA будет доступна в главном меню Windows: Start Menu (Пуск) -> Programs (все программы) -> Atmel Corporation -> AT91 ISP vX.Y -> SAM-BA vX’.Y’.exe.

4.2.1. Получение YAGARTO. На домашней страничке YAGARTO [11] предоставляются двоичные пакеты для загрузки: открытый On-Chip Debugger (OCD), GNU ARM toolchain и система разработки (Integrated Development Environment). Выберите для загрузки и установки пакет «YAGARTO GNU ARM toolchain».

4.2.2. Установка YAGARTO. Инсталлятор YAGARTO это обычный исполняемый файл Windows (*.exe). Его запуск отобразит следующее окно диалога:

Рис. 4-2. Главное окно инсталлятора YAGARTO.

Первые шаги это стандартное сообщение приглашения («Welcome») и соглашение о правах собственности («User agreement»). Начиная с некоторого шага инсталлятор запросит, какие компоненты нужно устанавливать. По умолчанию выбрано все; не снимайте галочки выбора с компонентов, потому что они все потребуются.

Рис. 4-3. Окно выбора компонентов.

Остальные шаги по установке тривиальны: кликайте «Next >» до последнего сообщения «Installation complete».

Теперь инструменты YAGARTO должны быть доступны в командной строке. Если Вы хотите проверить, как это работает, то сделайте следующее:

• Кликните на кнопке главного меню «Пуск» (start menu).
• Выберите пункт «Run…».
• Введите «cmd» и кликните Ok.
• Должно появиться окно интерпретатора команд, введите команду «arm-elf-gcc».
• Если установка прошла успешно, то будет выведено сообщение:

arm-elf-gcc: no input files

Рис. 4-4. Окно команд, в котором виден вывод результата запуска arm-elf-gcc.

Так как Eclipse была разработана главным образом для работы на Java, для поддержки встраиваемых систем на C/C++ требуется установка некоторых расширений. Однако установка каждого компонента по отдельности может быстро стать утомительной.

На сайте YAGARTO предоставляется полнофункциональная среда Eclipse с поддержкой C/C++. Это упрощает получение рабочей системы, что подробнее описано далее.

4.3.1. Получение Eclipse. Версию Eclipse от YAGARTO (называется YAGARTO IDE) можно найти на домашней страничке сайта YAGARTO [11]. Файл для загрузки называется «Integrated Development Environment».

Eclipse для работы требует Java Runtime Environment (JRE). На большинстве компьютеров уже установлена JRE, потому что есть множество софта, написанного на Java. Если это не так, то JRE можно скачать с сайта Oracle [16].

4.3.2. Установка Eclipse. Инсталлятор, который предоставляет YAGARTO также является исполняемым файлом *.exe, который запускается двойным кликом:

Рис. 4-5. Главное окно инсталлятора YAGARTO IDE.

Во время установки не требуется выбирать никаких опций, просто кликайте на кнопку «Next >» до полного завершения установки.

4.4.1. Получение Make. На сайте проекта GnuWin32 имеются пакеты для загрузки. Перейдите в раздел «Packages» и найдите Make. Кликните на ссылку «Setup» справа для загрузки пакета установки.

4.4.2. Установка Make. Загруженный с сайта GnuWin32 файл также является инсталлятором *.exe. После его запуска отобразиться следующее окно:

Рис. 4-6. Окно инсталлятора GnuWin32 Make.

Инсталлятор запросит целевую директорию, куда будут установлены компоненты, и некоторые другие мелкие опции. Директория инсталляции может находиться в любом месте на диске, однако путь до неё нужно запомнить, потому что он будет использоваться на последующих шагах конфигурирования (поэтому удобнее всего выбрать короткий, запоминающийся путь до каталога установки). Можно выбрать вариант установки либо «Full», либо «Compact», поскольку нужные бинарные файлы утилит будут установлены и в том, и в другом случае.

Теперь инструменты GnuWin32 (в том числе и утилита make) должны быть доступны на уровне системы (т. е. их можно будет запускать из командной строки). Для этого пути запуска утилит должны присутствовать в переменной окружения %PATH%. Если это не так, то нельзя будет просто запускать make из любого каталога проекта без полного указания пути (поэтому путь до каталога make должен быть указано в переменной окружения %PATH%, иначе пользоваться make будет очень неудобно). Само собой, для удобства нужно гарантировать, что директория, где находится make.exe, должна быть в списке каталогов переменной окружения %PATH%.

Переменная %PATH% может быть изменена следующим образом:

• Кликните на кнопке «Пуск» (start menu).
• В подменю «Настройки» (Settings) выберите «Панель управления»(Control Panel).
• Выполните двойной клик на иконке «Система» (System).
• Выберите закладку «Дополнительно» (Advanced).
• Кликните на кнопке «Переменные окружения» (Environment Variables), которая находится внизу.
• Найдите переменную PATH во второй секции «Системные переменные» (System variables).
• Выберите её и кликните на кнопку «Изменить» (Edit).
• Добавьте к строке переменной текст ;DIRECTORY\bin, где DIRECTORY это папка, куда был установлен пакет GnuWin32 (в подкаталоге bin этой папки находится утилита make).
• Кликните «Ok» три раза, чтобы подтвердить изменения.

Для проверки, что изменения были корректны, выполните следующее:

• Кликните на кнопке «Пуск» (start menu).
• Выберите «Выполнить…» (Run…).
• Введите cmd и кликните на кнопку Ok.
• В появившемся черном окне интерпретатора команд введите команду:

Эта команда укажет утилите make вывести свой номер версии, который должен соответствовать версии пакета утилит проекта GnuWin32.

Рис. 4-7. Рабочее окно интерпретатора команд, где виден вывод команды make.

4.5.1. Получение GDB Server. Сервер GDB можно загрузить с сайта компании SEGGER. Он входит как часть в программный пакет для отладчика J-Link, который также содержит и некоторые другие программные утилиты. Этот пакет можено загрузить с сайта segger.com [9].

4.5.2. Установка GDB Server. Пакет программного обеспечения J-Link распространяется как ZIP-архив, в котором находится программа для установки. После распаковки архива и запуска установщика появится следующее окно:

Рис. 4-8. Главное окно J-Link Software Installer.

Просто кликайте на кнопку «Next >» до завершения процесса установки.

[5. Использование инструментария]

Эта секция демонстрирует выполнение базовых задач с использованием только что установленного тулчейна. Здесь используется программа примера «Getting Started with the AT91SAM7S Microcontroller», который можно загрузить вместе с соответствующим апноутом с сайта Atmel в составе AT91SAM software package [15].

Пример «Getting Started» должен быть распакован в любой каталог на диске. Это проект, на который будут ссылки в последующих секциях этого документа. Однако имейте в виду, что утилита make в настоящее время не поддерживает пробелы в именах файлов и папок, так что этого следует избегать.

5.1. Импорт существующего проекта. Первый шаг состоит в запуске среды разработки Eclipse IDE. Ярлык для её запуска можно найти в главном меню: Пуск (Start Menu) -> Программы (Programs) -> YAGARTO IDE -> Eclipse Platform X.Y.

При первом запуске Eclipse задаст Вам вопрос о местонахождении рабочей директории на диске. Это папка, где будут по умолчанию сохраняться новые проекты. Для нашего описания здесь можно выбрать любой каталог на диске.

Рис. 5-1. Окно выбора рабочего пространства Eclipse (Workspace).

После того, как рабочее пространство выбрано, откроется главное окно Eclipse. Сначала оно будет пустое, потому что пока что не создано ни одного проекта.

Для импорта существующего проекта GNU создайте новый проект путем выбора в меню File -> New -> Project…, появится окно мастера проекта (project wizard). Он предложит список стандартных шаблонов, которые могут использоваться для создания нового проекта. Поскольку пример Getting Started написан на C, и в нем имеется свой makefile, должен быть выбран шаблон «Standard Make C Project».

Рис. 5-2. Окно Project Wizard.

Следующий шаг — дать проекту имя и выбрать для него корневой каталог. Имя может быть любым, например «Getting Started». Корневая папка проекта однако должна быть задана вручную, поскольку цель состоит в импорте существующего проекта в рабочее окружение, а не в создании нового. Таким образом, должна быть снята галочка с опции «use default location» (использовать каталог по умолчанию), и в поле «Location» (место расположения) должен быть установлен путь до каталога, где находится проект примера. После того, как оба значения корректно установлены, кликните на кнопку «Next >».

Рис. 5-3. Окно, где задается имя проекта и его место расположения.

Заключающий шаг состоит в настройке деталей проекта. Последнее окно покажет некоторые закладки, где на каждой из них содержаться настройки, описываемые далее.

Первая закладка указывает на проекты C/C++. Это может быть полезно, если новый проект нуждается в использовании исполняемого кода или библиотеки, которые собраны в другом проекте. Сейчас этот список должен быть пустым, потому что еще не был создан ни один проект.

Рис. 5-4. Закладка «Referenced C/C++ Projects».

Следующая закладка содержит параметры для утилиты make, которые будут использованы для компиляции кода. В этом окне задается команда для сборки, его следует оставить без изменения кроме случаев, когда makefile, используемый в проекте, требует некоторых специальных параметров. Здесь можно разрешить полезную функцию «Build on resource save», это задает автоматически перекомпилировать проект, если был изменен файл, освобождая разработчика от ожидания завершения процесса сборки после завершения кодирования.

Рис. 5-5. Закладка опций сборки Make (Builder Settings).

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

Рис. 5-6. Закладка переменных окружения (Environment Variables).

Закладки «Error Parsers» и «Binary Parsers» задают, как будут проанализирован вывод утилиты make и создание готовых двоичных файлов для отображения ошибок и другой информации компиляции. Поскольку это по умолчанию корректно задано, здесь ничего менять не надо.

Рис. 5-7. Закладка «Error Parsers».

Рис. 5-8. Закладка «Binary Parsers».

Следующая закладка «Discovery Options». По умолчанию включена опция автоматического определения путей и символов, что разрешает системе Eclipse собрать список функций, переменных проекта, и т. д. Это полезно для быстрой навигации по коду, и лучше эту опцию оставить разрешенной. Единственная модификация здесь — изменить значение поля «Compiler invocation command» с gcc на arm-elf-gcc, поскольку проект использует компилятор GNU ARM, а не стандартный.

Рис. 5-9. Закладка «Discovery Options».

Последняя закладка позволяет пользователю выбрать между тремя режимами индексирования. Индексирование делает поиск функций более быстрым и точным, так что эта опция должна быть разрешена. Для маленьких проектов полезно выбрать полную индексацию, что не создаст проблем. Однако для больших проектов это замедлит работу, так что в таком случае вместо полной следует выбрать быструю индексацию (fast indexer).

Рис. 5-10. Закладка выбора индексации.

После того, как установлена конфигурация проекта, кликните кнопку «Finish», и будет создан проект. Среда Eclipse может выдать запрос, если нужно открыть перспективу C/C++, например для изменения визуального оформления кодирования C/C++. Поскольку в большинстве времени требуется выбранное поведение среды, может быть установлена галочка «Remember my decision» (запомнить мое решение) перед тем, как кликнуть кнопку «Yes».

Рис. 5-11. Eclipse запрашивает открыть перспективу C/C++.

Примечание: «перспективой» называют конфигурацию окон отображения в Eclipse. Например, при редактировании кода и при отладки рабочие окна и содержимое меню могут отличаться. Это и будет разными перспективами. При написании кода работает перспектива Edit, а при отладке перспектива Debug. Так уж устроена Eclipse, ничего не поделаешь. В других IDE перспективы тоже есть, но они замаскированы, и работают прозрачно для пользователя (хотя в некоторых IDE такое «прозрачное» переключение перспектив сопровождается глюками, как например в Atmel Studio и в VisualDSP++).

Новый проект должен должен появиться в левой панели, где будут перечислены файлы и подкаталоги. Дополнительно Eclipse будет автоматически пытаться собрать проект при его открытии, с использованием make.

Рис. 5-12. Главное окно Eclipse после создания нового проекта.

5.2. Сборка (Building). Сборка проекта осуществляется либо автоматически (если во время конфигурирования проекта была установлена соответствующая опция), либо выбором пункта «Build Project» меню Project. Вывод сообщений команды make будет показано в нижней части окна, на закладке «Console», как это показано на рис. 5-13.

Рис. 5-13. Закладка Console показывает вывод процесса сборки.

Дополнительно Eclipse также будет анализировать вывод команды, чтобы показать ошибки компиляции на закладке «Problems». Это удобно, потому что на детектированных ошибках можно делать клик, и это действие откроет соответствующий файл исходного кода в том месте, где эта ошибка произошла (как демонстрируется на рис. 5-14).

Рис. 5-14. Анализ ошибок (Error Parsing) и навигация по коду в Eclipse.

Имейте в виду, что для наиболее успешной отладки проект должен быть скомпилирован без какой-либо оптимизации. Обычно для этого в makefile может быть установлена соответствующая переменная, чтобы разрешать или запрещать оптимизацию. В примере проекта Getting Started эту задачу выполняет переменная $(OPTIM). Чтобы разрешить поддержку отладки, закомментируйте символом ‘#’ строку, где определена переменная $(OPTIM):

# Закомментируйте строку ниже, чтобы была возможна
# полноценная отладка по исходному коду:
#OPTIM = -Os

5.3. Отладка кода

5.3.1. Запуск GDB Server. Инструмент SEGGER GDB Server позволяет отладчику GNU debugger подключиться через сеть (на другой рабочей станции, или на локальной) к отлаживаемой цели с помощью JTAG.

Когда GDB Server запущен, он подключается к отладочной плате и ждет сетевого подключения со стороны отладчика. Окно GDB Server отображает полезную информацию (см. рис. 5-15). Здесь показано состояние соединения с отладчиком, SAM-ICE и отлаживаемым процессором. В окно лога выводится, что локальный сервер создал прослушивающий сокет TCP/IP на порт 2331, чтобы позволить подключиться к нему отладчику.

Также можно установить скорость, с которой работает SAM-ICE, с использованием комбо-бокса «Initial JTAG speed». Для наилучшей производительности с микроконтроллерами AT91SAM7 должна использоваться установка «adaptive», и это обязательный выбор для использования с устройствами AT91SAM9.

Рис. 5-15. Главное окно GDB Server.

5.3.2. Создание конфигурации SRAM. Чтобы отлаживать проект, сначала в Eclipse должна быть создана подходящая конфигурация. В меню Run выберите пункт «Debug…», чтобы отобразить окно управления конфигурацией отладки (debug configuration management).

Рис. 5-16. Диалог Debug Configuration Management.

Поскольку проект предназначен для встраиваемой цели отладки (embedded target), конфигурация должна быть создана под одной из двух нижних секций («Embedded debug (Cygwin)» и «Embedded debug (Native)»). Тулчейн YAGARTO скомпилирован специально с расчетом на окружение рабочей станции Win32® (native Win32® environment), поэтому подходящей будет самая последняя секция. Правый клик на её имени и выбор опции «New» создаст базовую конфигурацию с именем после проекта, как показано на рис. 5-17.

Рис. 5-17. Basic Embedded Debug Configuration.

Здесь есть 5 закладок, хранящих информацию конфигурации отладки. На первой в поле «C/C++ Application» должен быть указан двоичный файл для отладки. Если проект был собран без ошибок, то кнопка «Search Project…» должна показать список возможных файлов для выбора. Пример Getting Started для AT91SAM7S собирает 2 файла, один для выполнения в SRAM, и другой для выполнения во FLASH. Для этой конфигурации должен быть выбран первый, для SRAM.

Рис. 5-18. Выбор двоичного файла.

На закладке «Debugger» должно быть введено несколько подробностей, касающихся отладчика YAGARTO. Все установки корректны, кроме команды для вызова отладчика: здесь должно быть не значение gdb, а значение arm-elf-gdb, что должно быть исправлено в первом текстовом поле.

Рис. 5-19. Закладка конфигурации отладчика.

Последняя закладка проверяет закладку «Commands» (здесь ничего делать не нужно, потому что закладки «Source» и «Common» автоматически устанавливаются в корректные значения, и меняются редко). Здесь заданы несколько команд инициализации и времени выполнения, чтобы отладчик работал корректно.

Поскольку отладчик подключится к цели отладки через сеть, то это должно быть задано строкой:

target remote localhost:2331

Эта команда говорит отладчику arm-elf-gdb подключаться по сети к серверу GDB, работающему на TCP/IP порту 2331 локальной машины (если сервер GDB находится на другом компьютере локальной сети, то вместо localhost нужно указать его сетевой адрес). Эта установка определяется запуском GDB Server (см. раздел 5.3.1). Когда выполняется эта команда, состояние отладчика в окне GDB должно поменяться. Эта команда должна быть введена в бокс команд Initialize.

Как только отладчик подключился, лучше всего сбросить отлаживаемый процессор. Это даст гарантию, что изменения предыдущих сессий отладки не повлияют на новую сессию. Для этого добавляется команда:

В завершение, поскольку конфигурация отладки будет работать в SRAM, программа должна быть выгружена в память отлаживаемого процессора. Это осуществляется командой загрузки:

Обе команды сброса и загрузки должны быть введены в бокс команд Run.

Рис. 5-20. Закладка команд конфигурации.

В этот момент конфигурация корректна, и должна быть сохранена с помощью кнопки Apply.

5.3.3. Создание конфигурации FLASH. Отладка из памяти FLASH почти такая же, как и из SRAM, за исключением того, что программа должна быть «прошита» перед выполнением, и не перезагружается, когда стартует сессия отладки.

Чтобы создать конфигурацию отладки FLASH, делайте все то же самое, что было описано в разделе 5.3.2, но с двумя отличиями:

• Двоичный файл, выбираемый на закладке «Main», должен быть линкован с расчетом работы во FLASH.
• Команда load (на закладке «Commands») должна быть опущена.

5.3.4. Создание конфигурации SDRAM. Некоторые микроконтроллеры семейства AT91 могут подключаться к внешнему чипу памяти SDRAM. Эта дополнительная память полезна для отладки программ, поскольку по размеру она обычно намного больше, чем внутренняя память SRAM микроконтроллера. Однако по сравнению с памятью SRAM нельзя напрямую загрузить код в SDRAM, потому что она сначала должна быть инициализирована. Чтобы выполнить такую инициализацию, вместе с примерами Getting Started предоставлен файл команд GDB (“init_sdram.gdb”), предназначенный для микроконтроллеров, на кристалле которых есть контроллер SDRAM. Скрипт разрешает работу главного генератора, PLL и SDRAM.

Исходные команды выполняют указанный файл команд GDB, так что конфигурация отладки SDRAM идентична конфигурации SRAM, кроме двух отличий:

• Выбираемый двоичный файл на закладке «Main» должен быть линкован для работы в SDRAM.
• На закладке «Commands» исходный файл команд init_sdram.gdb должен быть добавлен сразу перед командой load (вместе с командами Run).

5.3.5. Отладка

5.3.5.1. Установка точек останова. Установка и снятие точек останова (breakpoints) делается так же, как и в других IDE, например двойным кликом на нужной строке, чтобы там была установлена breakpoint. Другой способ — выбрать пункт «Toggle Line Breakpoint» в меню Run в режиме работы перспективы Debug.

5.3.5.2. Запуск сессии отладки. Чтобы запустить сессию отладки, выберите пункт «Debug…» в меню Run. Затем выберите конфигурацию отладки, которая будет использоваться, и кликните на кнопку Debug. Должна открыться перспектива Debug, в которой программа будет остановлена. Перед запуском отладки убедитесь, что сервер GDB Server действительно работает.

Чтобы реально запустить отлаживаемую программу, кликните на пункт «Resume» в меню Run, или нажмите клавишу F8. Если в коде была установлена breakpoint, то программа должна остановиться в соответствующем месте кода, как демонстрируется на следующем скриншоте:

Рис. 5-21. Перспектива Debug, где показано выполнение программы, остановленное на точке останова.

После завершения отладки сессия может быть остановлена выбором «Terminate» в меню Run. Имейте в виду, что в любой момент времени может быть активной только одна сессия отладки. Это означает, что текущая сессия отладки должна быть завершена перед запуском новой.

5.3.5.3. Закрытие сессии отладки. Чтобы закрыть сессию отладки, выберите пункт «Thread» на закладке «Debug». Затем закройте сессию кликом либо на красном квадрате выше закладки, либо выбором пункта «Terminate» в меню Run.

5.3.5.4. Команды отладки. В системе разработки Eclipse имеется полезный функционал отладки:

• Step into (один шаг с заходом в код функции)
• Step over (один шаг без захода в код функции)
• Step return (шаг с выходом из функции)
• Run to line (запуск выполнения до нужной строки)

Он доступен из меню Run или через кнопку, которая находится на закладке «Debug».

5.3.5.5. Просмотр памяти. Закладка «Memory» внизу позволяет пользователю просмотреть содержимое памяти начиная с указанного адреса. Чтобы добавить просматриваемый регион памяти, сделайте правый клик на область «Monitors» и выберите «Add Memory Monitor». Eclipse запросит базовый адрес региона памяти, и затем покажет его содержимое.

Рис. 5-22. Eclipse показывает содержимое памяти отлаживаемой системы по адресу 0x200000.

5.4. Программирование памяти. Eclipse позволяет пользователю конфигурировать и запускать внешние инструменты. В комбинации с утилитой Atmel SAM-BA это упрощает программирование памяти целевого микроконтроллера — теперь это можно делать напрямую в Eclipse.

Для выполнения прошивки используется требуется соответствующий скрипт. Пример Getting Started предоставляется вместе со скриптом, который помещает двоичный файл в память FLASH и запускает его, и этот скрипт можно запустить из командного файла (*.bat или *.cmd). Подробнее про написание скриптов см. руководство пользователя SAM-BA [2].

Для запуска скрипта создайте конфигурацию нового внешнего инструмента выбором External Tools -> External Tools… в меню Run. Это действие откроет новый диалог для управления существующими конфигурациями, и создания новых. Создайте новую конфигурацию правым кликом на левой области и выберите «New». Правая область должна теперь показать несколько закладок с доступными параметрами:

Рис. 5-23. Диалог конфигурации запуска внешнего инструментального ПО (External Tool Configuration).

Для базового функционала нужно установить только значения двух полей, оба находятся на закладке «Main». Первое значение устанавливается в поле «Location» просто выберите файл prog_flash.bat в диалоге выбора файла, который запускается кнопкой «Browse Workspace…». Второе значение задает рабочую директорию, которая должна быть установлена на папку, где находится командный файл prog_flash.bat. Обычно это папка, соответствующая базовой директории проекта.

После того, как настройки введены, кликните на «Apply», чтобы сохранить их и на «Run», чтобы запустить скрипт.

Примечание: все упомянутое в статье программное обеспечение можно скачать по ссылке [17].

[Ссылки]

1. GNU-Based Software Development on AT91SAM Microcontrollers site:atmel.com.
2. Atmel SAM-BA In-system Programmer site:atmel.com.
3. Замена IAR EWB на Eclipse IDE.
4. Установка IAR Embedded Workbench 550.1 for ARM.
5. Клоны Segger J-Link.
6. Atmel SAM-ICE — a JTAG emulator for Atmel ARM-based MCUs site:atmel.com.
7. GNU MCU Eclipse site:gnu-mcu-eclipse.github.io.
8. J-Link GDB Server site:segger.com.
9.  J-Link Software and Documentation Pack site:segger.com.
10. Eclipse site:eclipse.org.
11. YAGARTO — Yet another GNU ARM toolchain site:yagarto.org.
12. GnuWin32 site:sourceforge.net.
13. GNU make site:gnu.org.
14. GnuWin Packages site:gnuwin32.sourceforge.net.
15. AT91SAM software package site:atmel.com.
16. jre download: site:oracle.com.
17. 170730gnu-based-software-development-on-at91sam.zip — программное обеспечение, документация, примеры кода.

microsin.net

SAM-BA boot agent | arm

SAM-BA boot agent предназначен для загрузки программного обеспечения через стандартные интерфейсы (USB, CAN, RS-232). Такая возможность очень удобна для обновления программного обеспечения (firmware) в готовом устройстве.

[Документация]

1. SAM Boot Assistant (SAM-BA) User Guide site:atmel.com.
2. Extending SAM-BA Programming Capabilities site:atmel.com.
3. AT91 In-system Programmer (ISP) site:atmel.com.

[Установка]

1. Скачайте AT91-ISP.exe [1]. Я ставил AT91-ISP.exe v1.12 current release. Установка по умолчанию происходит в папку c:\Program Files\ATMEL Corporation\AT91-ISP v1.12. При загрузке установится драйвер (Касперский предупредил об этом). Если потребуется перезагрузка, то перезагрузите систему.
2. Подключите макетную плату AT91SAM7X [2] (или макетные платы Atmel AT91SAM7X-EK или Olimex SAM7-EX256) через USB. Новое устройство обнаружится, установится драйвер. Устройство появляется в диспетчере устройств как Universal Serial Bus controllers\atm6124.Sys ATMEL AT91xxxxx Test Board:

3. Запустите программу SAM-BA v2.8 (ярлычок на рабочем столе), выберите соединение «\usb\ARM0» и тип платы «AT91SAM7X256-EK», и нажмите кнопку Connect:

[Проверка работы]

Все готово, теперь остается попробовать, как работает. Испытывать будем на скомпилированном в двоичный файл проекте из примеров IAR — getting-started-project (полный путь до файла проекта c: \ Program Files \ IAR Systems \ Embedded Workbench 5.0 Evaluation \ ARM \ examples \ Atmel \ at91sam7x-ek \ getting-started-project \ getting-started-project.eww, прошивка после появится здесь — c:\Program Files\IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\examples\Atmel\at91sam7x-ek\getting-started-project\ewp\at91sam7x256_flash\Exe\at91sam7x256_flash.bin). Подключите макетную плату через USB (если это макетная плата AT91SAM7X, то перемычка J2 должна стоять в положении 1-2 USB PWR). Запустите программу SAM-PROG v2.4, выберите по кнопке Browse файл at91sam7x256_flash.bin, и нажмите кнопку Write.

Чтобы процесс записи индицировался, можно выбрать «PIO indicator for successful programming» — для нашей платы PIOB 21 будет соответствовать светодиоду на макетной плате.

После записи проверьте работу прошивки. Для этого нужно соединить прямым COM-портовым кабелем DB9-мама/DB9-папа (в «прямом» кабеле на обеих концах соединены ножки с одинаковыми номерами — контакт 1 на «маме» соединен с контактом 1 на папе и т. д.). Потом запустите любую консольную программу, работающую с COM-портом, настройте её на параметры порта 115200 бит/сек, 8 бит данных, без четности, 1 стоп-бит, переподключите разъем USB (чтобы сбросить микроконтроллер на макетной плате). После этого в терминальной программе будет видно, что прошивка выводит в порт DBGU:

[Восстановление загрузчика]

Запрограммированная таким образом плата при включении питания всегда будет выполнять пользовательскую программу, загрузчик при этом не работает. Вернуть макетную плату в исходное состояние (чтобы снова был доступен USB-загрузчик SAM-BA, и можно было записать новое firmware в память микроконтроллера) можно следующим способом (описано в файле помощи «C:\Program Files\ATMEL Corporation\AT91-ISP v1.12\SAM-PROG v2.4\Documentation\at91sam-prog.hlp»):

— Отключите питание от макетной платы (в нашем случае просто выдернем кабель USB, подключенный к ней).
— Замкните перемычку J4 ERASE.
— Снова подключите питание (воткните кабель USB).
— Подождите 10 секунд.
— Отключим питание от макетной платы (выдернем кабель USB).
— Уберите перемычку J4 ERASE.
— Снова подключите питание (воткните кабель USB). Макетная плата готова к новой загрузке, загрузчик SAM-BA восстановлен.

[Почему не работает загрузчик в микроконтроллере AT91SAM7X512?]

«… я в растерянности, скачал утилиту SAM-BA для программирования. Обновил драйвер по инструкции, а утилита SAM-BA не видит контроллер. Когда запускаю утилиту, там можно выбрать только порт com1, но это вовсе не загрузчик, и утилита SAM-BA не работает…«

Наверняка утилита SAM-BA не работает потому, что не видит устройства, в котором работает загрузчик. Это бывает в том случае, если память микроконтроллера не стерта.

Когда Вы подключали не стертую плату к компьютеру, то в микроконтроллере AT91SAM7X512 запускается не загрузчик SAM-BA, а записанная в память FLASH старая программа. Ваша цель — эту программу стереть, и записать туда новую с помощью загрузчика SAM-BA. Чтобы запустился загрузчик SAM-BA, нужно сначала стереть память микроконтроллера по стандартной процедуре, которая описана в документации на микроконтроллер. На плате AT91SAM7X стирание памяти микроконтроллера делается с помощью установки перемычки J4 ERASE, и включения питания на 10 секунд с установленной перемычкой. После этой процедуры перемычку нужно снять, и передернуть питание у платы (переподключить плату к USB). Далее чистый микроконтроллер готов к загрузке новой прошивки с помощью утилиты SAM-BA.

[Ссылки]

1. AT91 ISP/SAM-BA® site:atmel.com.
2. Макетная плата AT91SAM7X.
3. AT91SAM7X: бутлоадер SAM-BA от компании Atmel.
4. getting-started-project — скомпилированная прошивка at91sam7x256_flash.bin и проект с исходными кодами.

microsin.net

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *