Представляем электронную версию статьи из номера №2 за 2016 год журнала.
Автор Курниц Андрей.
В статье описан процесс развертывания экосистемы разработки приложений для микроконтроллеров серии Atmel SAM4S в среде операционной системы Linux. Читатель также познакомится с оценочной платой SAM4S-EK и семейством микроконтроллеров Atmel ARM Cortex-M4. Даны рекомендации по работе с отладочным адаптером SAM-ICE (он же J-LINK) и программой OpenOCD.
Введение
Выбор операционной системы Linux в качестве среды программирования микроконтроллеров Atmel ARM Cortex-M4 вряд ли можно назвать общепринятой практикой.Напротив, для разработки своих микроконтроллеров компания Atmel бесплатно распространяет среду Atmel Studio 7, предназначенную исключительно для операционных систем Windows. Также не будет секретом, что развернуть и настроить среду Atmel Studio 7 новичку будет гораздо проще, чем путь, выбранный автором.
Автор предлагает для отладки использовать среду разработки Qt Creator совместно с набором инструментов кросс-компиляции GCC и пакетом OpenOCD. В качестве операционной системы автор выбрал Linux Lubuntu 14.04 LTS (работает на виртуальной машине, но это не принципиально).
Такой подход позволяет легко переходить на другие ARM (и не только) микроконтроллеры, не меняя привычный набор инструментов.
Например, в [1] приведен пример разработки микроконтроллеров STM32F4 компании ST microelectronics с использованием того же набора инструментов.
Несколько слов об используемой терминологии.
Аппаратное устройство, которое подключается к целевому микроконтроллеру и рабочей станции, в дальнейшем называется адаптером разработки.
Отладчиком будет компьютерная программа, которая используется для пошагового выполнения программы, просмотра значений ячеек памяти и т. д.
Аппаратная платформа
Рис.
1. Внешний вид платы SAM4S-EK с подключенным отладочным адаптером.
Оценочная плата основана на микроконтроллере Atmel SAM4S16C, основные характеристики которого перечислены ниже: Ядро ARM Cortex-M4, максимальная тактовая частота 120 МГц Объем встроенной памяти: флэш-память 1 МБ и ОЗУ 128 КБ.
Среди периферийных устройств можно выделить: USB-контроллер (работает только в режиме устройства), внешний контроллер флэш-памяти NAND, контроллер карты памяти SD. Контроллеры интерфейсов UART, I2C, SPI и т. д. 100-контактный корпус Особенности оценочной платы SAM4S-EK включают в себя следующее: Микросхема флэш-памяти Micron MT29F2G08ABAEA 2 Гбит NAND Цветной дисплейный модуль FTM280C34D с разрешением 320x240 пикселей, диагональю 2,8 дюйма и резистивной сенсорной панелью.
Дисплей содержит встроенный контроллер Ilitek ILI9320, подключенный к микроконтроллеру через параллельный интерфейс.
Контроллер резистивной сенсорной панели Texas Instruments ADS7843E Распаяны два разъема DB9 для двух портов RS-232 (один из них с сигналами RTS, CTS), также предусмотрен интерфейс RS-485. Сенсорные элементы управления по технологии Atmel QTouch, расположенные непосредственно на печатной плате (5 сенсорных кнопок и слайдер) лекретный микрофон и операционный усилитель TS922 для него Аудиоусилитель для подключения наушников TPA022, а также разъем 3,5 мм.
Два коаксиальных разъема BNC, которые подключаются к встроенным блокам АЦП и ЦАП микроконтроллера.
Держатель карты памяти Micro-SD 63 контакта общего назначения (GPIO) выведены на разъемы IDC с шагом 2,54 мм.
Более подробную информацию как о плате SAM4S-EK, так и о микроконтроллере SAM4S16C можно найти на сайте Atmel [ 12 ].
Инструментарий
После идентификации аппаратной (плата SAM4S-EK) и программной (операционная система Linux Lubuntu) платформ можно построить систему аппаратных и программных средств для программирования и отладки целевого микроконтроллера (рис.2).
Рис.
2. Структурная схема процесса отладки микроконтроллера.
Микроконтроллер подключается через интерфейс JTAG к отладочному адаптеру SAM-ICE, который, в свою очередь, подключается к рабочей станции через интерфейс USB. Питание отладочного адаптера также осуществляется через интерфейс USB, при этом макетная плата и микроконтроллер должны питаться отдельно (на рис.
2 не показано).
На рабочей станции должна быть запущена программа, которая будет взаимодействовать с адаптером отладки SAM-ICE, с одной стороны, и отладчиком GDB, включенным в набор инструментов GCC, с другой.
На эту роль идеально подходит свободно распространяемая программа OpenOCD [4-6], которая, помимо отладки, может использоваться для загрузки прошивки во флэш-память микроконтроллера и для внутрисхемного тестирования.
Программа OpenOCD поддерживает как отладочный адаптер SAM-ICE (по сути, это аналог популярного J-LINK), так и оценочную плату SAM4S-EK (соответственно микроконтроллеры Atmel SAM4).
Кроме того, OpenOCD доступен в виде исходного кода и может быть скомпилирован для операционной системы Linux. Интегрированная среда разработки Qt Creator (рис.
2) получает отладочную информацию через отладчик GDB и предоставляет ее в удобном для разработчика виде (точки останова, значения переменных, пошаговое выполнение программы и т.п.
).
Программа OpenOCD работает в режиме сервера и позволяет подключать другие клиентские программы, например, telnet-клиент (рис.
2).
Это может быть удобно для последовательного программирования микроконтроллеров на производстве.
Установка ОпенОКД
Установить OpenOCD можно наименее трудоемким способом — из репозиториев Ubuntu, для чего следует выполнить команду:Однако в этом случае будет установлена устаревшая версия 0.7.0 (проверить версию установленной программы OpenOCD можно, выполнив команду openocd --версия ).sudo apt-get install openocd
Чтобы получить текущую версию (0.9.0 на момент написания), вам необходимо собрать OpenOCD из исходного кода.
Для этого вам необходимо сделать следующее:
1. Загрузите исходные коды OpenOCD с сайта [ 2 ] выполнив команду: cd ~
wget http://downloads.sourceforge.net/project/openocd/openocd/0.9.0/openocd-0.9.0.tar.bz2 .
В результате в вашем домашнем каталоге должен появиться архивный файл.
openocd-0.9.0.tar.bz2 .
2. Далее следует разархивировать OpenOCD, выполнив команду: tar xvf openocd-0.9.0.tar.bz2
В результате в домашнем каталоге должна появиться директория с исходным кодом openocd-0.9.0.
3. Проверьте, установлена ли библиотека libusb-dev, необходимая для взаимодействия рабочей станции и адаптера SAM-ICE через интерфейс USB. Чтобы проверить наличие библиотеки libusb-dev, выполните команду: sudo dpkg --get-selections | grep libusb
Если библиотека установлена, вывод должен быть примерно таким: libusb-0.1-4:i386
Теги: #Atmel #cortex-m4 #микроконтроллеры #arm #микроконтроллеры Arm #Программирование микроконтроллеров
-
Вариационное Исчисление
19 Oct, 24 -
Как Выбрать Кабель Hdmi? - Анализ
19 Oct, 24 -
Кому Важно, Чтобы Isdef Жил Хорошо?
19 Oct, 24 -
Лучшие Способы Использования Angular.js
19 Oct, 24