ARM Development Studio 5 —
программный пакет
для разработки Linux-приложений
Сергей КОПЫТИН
ARM Development Studio 5 (DS-5) — это программный пакет для разработки Linux-приложений на базе процессоров ARM. DS-5 предлагает разработчику широкий набор интуитивно понятных инструментов, которые позволяют получать и анализировать любую информацию, необходимую для отладки и оптимизации программного обеспечения.
Открытое ПО
Сегодня разработка Linux-приложений ведется, в основном, на средствах Open Source. Открытое ПО бесплатно, но привносит большие инженерные затраты на выявление и локализацию ошибок, в результате чего проект может сильно растянуться по времени. Кроме того, средства Open Source трудны в освоении, так как сопровождаются скудной документацией, и тяжелы в использовании, поскольку имеют бедные графические интерфейсы. В открытом ПО нет взаимосвязи между сессиями отладки драйверов и приложений, что влечет инженерные затраты на изучение и поддержку одновременно двух отладчиков. И, наконец, еще один минус открытого ПО — поздняя поддержка новых MCU.
Следствие всего этого — неминуемая потеря времени, денег и сил, которым имеет смысл найти лучшее применение, дабы сосредоточить усилия на работе над проектом.
DS-5
делает разработку Linux проще
DS-5 — продукт департамента инструментальных средств ARM, который предлагает лучшие средства разработки для технологии ARM. Это законченное, профессионально поддерживаемое решение, охватывающее
Г п
[ DS-5 J
Г л Компилятор ^ У Eclipse
База i данных конфигурации устройства
L _ Отладка Симулятор аппаратных средств
L_ I
Рис. 1. Структура DS-5
полный цикл разработки — от концепции до отладки приложений. В DS-5 входят (рис. 1):
• мощный ARM-компилятор, лучший по коду и производительности;
• GNU-компилятор для Linux на базе дистрибутива GCC 4.4.1;
• интуитивный отладчик DS-5 с гибким графическим интерфейсом;
• модели систем реального времени (RealTime System Models);
• адаптер трассировки DSTREAM с 4-Гбайт буфером;
• анализатор производительности Streamline.
DS-5 доступен в трех вариантах: Application, Linux и Professional Edition (их характеристики представлены в таблице).
Таблица. Характеристики различных версий ARM DS-5
Характеристики Application Edition Linux Edition Professional Edition
Поддерживаемые Target OS Разработка Linux-приложений Все стадии проектирования Linux Linux, RTOS и др.
Поддерживаемые процессоры Ядра с MMU Ядра с MMU Все ядра ARM
Eclipse IDE / менеджер проектов V V V
GNU компилятор для Linux V V V
Real-Time System Models Cortex-A8 Cortex-A8 Cortex-A8 & A9MP
Отладчик приложений Linux V V V
Анализатор производительности Streamline V V V
Отладка Boot Code/Driver (JTAG) V V
Трассировка Boot Code/Driver V V
ARM-компилятор V
Доступность V V V
Eclipse IDE
Eclipse IDE — расширяемая платформа для различных программных средств, широко используемая по всему миру. Она работает как на компьютере, так и на отлаживаемой плате и увеличивает эффективность разработки, объединяя в единую структуру разнообразные инструментальные средства — Android Development Kit, отладчики и профилировщики RTOS, ПО для ARM, DSP и других архитектур процессоров. Все компоненты DS-5 интегрированы в Eclipse.
Использование DS-5
Eclipse для DS-5 запускается из Windows Start Menu ^ Programs ^ ARM DS-5. В Linux Eclipse запускается из <папка_установ-Ku>\bin. После запуска Eclipse выдает запрос о том, где будет находиться рабочее пространство (Workspace), то есть директория, в которой будут храниться настройки Eclipse, а также проекты, созданные при помощи DS-5. Рекомендуется создать одну или несколько директорий, которые будут использоваться как рабочие для пространства DS-5.
Eclipse IDE содержит редактор C/C++ и гибкую систему управления окнами. В Eclipse можно изменить положение и размер любого окна, «кликнув» на соответствующую вкладку и перетащив ее на любое удобное место. Любое окно также может быть добавлено на панель быстрого доступа для возможности обращаться к наиболее часто используемым окнам одним «кликом» мыши. Eclipse также поддерживает работу на нескольких мониторах.
Eclipse IDE включает в себя некоторые функции, облегчающие создание кода приложения на C/C++:
• выделение синтаксиса;
• всплывающие окна с информацией о выделенной переменной или функции с возможностью быстрого просмотра места кода, где та или иная переменная или функция были объявлены;
микроконтроллеры i 19
• автоматическое дополнение кода;
• шаблоны исходных файлов, файлов заголовков и классов;
• поиск по файлам проекта.
Стартовый экран
В любой момент можно вызвать стартовый экран DS-5 из пункта меню Help ^ DS-5 Home. Он позволяет быстро перейти по ссылкам на документацию по DS-5, просмотреть примеры программ, советы и ресурсы по технической поддержке DS-5. Чтобы закрыть стартовый экран и перейти к работе с DS-5, необходимо выбрать пункт меню Go to the Workbench.
Минимальные системные требования для работы с DS-5:
• двухъядерный процессор 2 ГГц;
• 2 Гбайт RAM, при работе с большими образами или моделировании рекомендуется 4 Гбайт;
• 2 Гбайт свободного дискового пространства;
• DS-5 поддерживает следующие х86-плат-формы:
- Windows XP Professional, Windows 7 Professional/Enterprise;
- Red Hat Enterprise Linux 5 Desktop and Workstation option, Standard.
• Android и ARM Linux application debug требует gdbserver для доступа к плате;
• DS-5 поддерживает отладку ARM Linux kernel версии не ниже 2.6.28.
Примеры программ в DS-5
Для демонстрации различных возможностей инструментов в состав пакета DS-5 включены различные демо-проекты:
• «Календарь» (Calendar), простейшее приложение для иллюстрации основ программирования в DS-5.
• «Фейерверки» (Fireworks) — более сложное приложение, портированное на BeagleBoard.
• Пример системы реального времени для Cortex-A8.
• «Гнометрис» (Gnometris) — Linux-приложение с открытым кодом, похожее на игру «Тетрис».
• Пример библиотеки (Example_library) иллюстрирует возможность создания простейших библиотек на языке С для ARM Linux.
• Cpp, cpp_library, cppex и cppex_library — примеры создания объектов и обработки различных прерываний.
Для работы с примерами необходимо выбрать пункт меню Import... ^ General ^ Existing Projects into Workspace. Затем выбрать Select archive file и указать путь <install_directory>\examples\example.zip. Эта операция разворачивает все примеры для DS-5 в директорию, выбранную пользователем в качестве рабочего пространства, и открывает их в окне редактора Eclipse.
Чтобы начать разработку собственного проекта, необходимо выбрать File ^ Create Build Projects ^ New ^ C or C++ Project (рис. 2).
С FmfcTt
w. с mad ".TIW
1 w ^Iqv
□ иь afrr №
MTW Jh"JT_j
htrJl Л
■nfwienii: 1n4Mi
1 IHHi
* №*=Ki«t
*
* t'^-riurJ.
9 . •
!hyf(MlI{|fn riLttthrt Wv f ,Гш. jd.-r
3> s I " **
Рис. 2. Создание проекта в DS-5
Затем выбрать один из четырех шаблонов: Linux-приложение (Linux application), общая библиотека (shared library), статическая библиотека (static library) или шаблон формирования файла (makefile project). После этого автоматически создается проект с предустановленными настройками компилятора. Чтобы добавить исходные файлы в шаблон проекта, необходимо правой кнопкой мыши нажать Project Explorer view и выбрать пункт New. Для компиляции проекта выбрать Project ^ Build.
Анализ запускаемых файлов
Двойной щелчок на запускаемом файле открывает редактор содержимого ELF (ELF Content Editor). Эту же операцию можно проделать, если «кликнуть» правой кнопкой мыши на File ^ Other ^ ELF Content Editor.
Этот редактор позволяет производить анализ скомпилированных программ до их загрузки на плату. ELF имеет несколько вкладок:
• Обзор общей информации о проекте (ELF header).
• Символьный навигатор (Symbol browser) с полным списком переменных и функций, используемых в проекте, а также их свойствами (типы, адреса).
• Выделение цветом скомпилированного кода для проверки и редактирования скомпилированного приложения.
Компиляторы
DS-5 содержит GNU-компилятор, в состав Professional Edition входит также ARM-компилятор.
GNU-компилятор — это стандартный компилятор для Linux, собранный на базе дистрибутива GCC 4.4.1, он включен во все редакции DS-5. Это готовая к работе, компактная и проверенная версия GNU для ARM Linux. Он полностью поддерживает системы команд Thumb-2 и NEON, новые процессоры Cortex
A5, A8, A9, содержит примеры, приложения и библиотеки. Однако GNU-компилятор поддерживается только через веб-форум.
ARM-компилятор — стандартный компилятор для архитектуры ARM. Осуществляется самая ранняя поддержка новых процессоров: системы команд, расширений DSP и сопроцессоров, оптимизация работы конвейеров. Существует профессиональная техническая поддержка — исправление ошибок, в том числе и в старых версиях компилятора. ARM-компилятор хорошо совместим с GNU-компилятором, ARM Debian и большинством дистрибутивов Linux, однако доступен только в DS-5 Professional Edition.
Отладчик DS-5
DS-5 поддерживает отладку приложений (Application debug) через gdbserver с помощью программы-агента deamon, работающей на плате target. При этом подключение к плате осуществляется через последовательный интерфейс или Ethernet. Работа ведется в режиме Run-mode, при котором ядро kernel и другие потоки threads никогда не останавливаются. Осуществляется единовременная отладка нескольких потоков и ядер многоядерных процессоров. Для этого необходимо просто несколько раз запустить отладчик через окно настроек отладки.
Для разработки загрузочного кода и пор-тирования ядра ОС kernel и драйверов используются DS-5 Linux и Professional Edition. Подключение к плате происходит через JTAG/SWD сразу после сброса. Для работы не нужны дополнительные физические интерфейсы и программные драйверы и не требуется вставлять специальные команды. Поддержка нескольких соединений с многоядерной системой осуществляется через один JTAG-интерфейс. Ведется одновременная отладка ядра (через JTAG) и приложений (через GDBserver), отображаются потоки и ресурсы ядра.
Подключение к плате
Все, что необходимо для отладки и анализа Linux-приложений для ARM-процессоров — это TCP/IP или последовательное соединение платы и компьютера. После старта Linux отладчик DS-5 запускает gdbserver на плате, подсоединяется к нему и использует его для запуска и управления приложением. Для работы DS-5 требуется gdbserver версии 6.8 (которая включена в состав пакета DS-5) или более поздняя.
Для подключения через JTAG используется высокоскоростной адаптер для отладки и трассировки DSTREAM (рис. 3), который имеет следующие характеристики:
• интерфейсы USB 2.0 и Ethernet 10/100base-T;
• JTAG/SWD-отладка run-control и захват
трассировки;
• интерфейс RDDI с другими IP-отладчика-
ми;
• рабочая частота JTAG 60 МГц;
• скорость загрузки 2,5 Мбайт/с;
• буфер трассировки 4 Гбайт;
• скорость трассировки 600 Mbps/pin (16 бит).
Анализатор производительности Streamline
Профилировщик и анализатор производительности Streamline осуществляет анализ работы ядра Linux и приложений, позволяет быстро и достоверно выявить виновников торможения (рис. 4). Для сбора данных Streamline использует технологию выборки, которая основана на выборочных данных, событиях ОС и комментариях пользователя. Streamline преобразует данные системной трассировки в графические и статистические отчеты. Для отладки не требуется дополнительное аппаратное обеспечение. Программа-монитор deamon собирает данные для передачи на компьютер. Накладные расходы при этом меньше 5%. Далее данные транспортируются между платой и компьютером через USB или Ethernet. Данные могут передаваться
|ШЛ|ИЕ-Л.Ьй.■)..-.» Щ
iijieil. -ш.-i.i.i; 1 IlibMfe-¡aLL-4>Ka*.I.MM.IE ! njlwKecc J,»..*=.С .ИМ.El I
не сразу, а постепенно — для продолжительного захвата в target с ограничениями по памяти. Для устройств с ограниченной полосой пропускания на плате организуется конфигурируемый буфер.
Модели систем реального времени
Сегодня есть много хороших и дешевых плат для отладки, но их возможностей может не хватать или плат может не быть в наличии. Пакет DS-5 включает в себя модели систем реального времени (Real-Time System Models), которые позволяют оценить выполнение кода без аппаратной части. Модели поддерживают симуляцию работы процессора, системной памяти и периферии (например клавиатуры, мышки, портов UART, Ethernet и LCD-экрана). Моделирование осуществляется при частотах 250 МГц и более.
Приведен пример для процессора Cortex-A8. При старте модель автоматически запускает Linux и входит в состояние, при котором разработчик может загружать и отлаживать свои приложения. Модель содержит виртуальную
Рис. 4. Пример экрана анализатора производительности Streamline
файловую систему, таким образом она получает доступ к файлам компьютера, на котором производится отладка так, как будто это файлы, которые входят в состав разрабатываемой ARM Linux-системы.
Заключение
Открытое ПО бесплатно, но привносит большие инженерные затраты на выявление и локализацию ошибок и его освоение. Мы считаем, что можно найти лучшее применение своим силам, если сосредоточить усилия на работе над проектом с помощью программного пакета ARM Development Studio 5. DS-5 — это законченное решение, поддерживающее полный цикл разработки, от концепции до отладки приложений. ■
Литература
1. www.arm.com/ds5
2. www.microcontroller.ru