arm development studio для всех arm процессоров5 Стандартный...
TRANSCRIPT
1
DS-5
ARM Development Studio
для всех ARM процессоров
Январь 2013
Сергей Копытин
Simecs Ltd
2
Проблемы Open Source Tools
Открытое ПО бесплатно, но привносит большие инженерные затраты
Выявление и локализация ошибок
Потеря времени, денег и сил на средства отладки
Проект может сильно растянуться по времени
Open source тяжелы в освоении
Бедная документация
Нет интуитивного интерфейса
Поздняя поддержка новых MCU
Найдите лучшее применение своим силам
Время, затраченное на освоение ПО не увеличивает стоимость конечного продукта
Сосредоточьте Ваши усилия на работе над проектом
3
Обзор DS-5
Законченное хорошо поддерживаемое решение,
Полный цикл разработки, от кремния до отладки приложений
Мощный ARM компилятор
Лучший по коду и скорости
Интуитивный отладчик DS-5
База данных устройств DB
Адаптер DSTREAM (4GB trace buffer)
Быстрые модели симуляции SoC
Работает без target hardware
Streamline™ Performance Analyzer
Анализ Linux и Android систем
Compiler
Eclipse
Debugger
Device Configuration Database
Hardware Debug
Streamline IDE
Simulation
DS-5
4
Интуитивный графический отладчик
Полная поддержка multi-core при
информированности в ресурсах Linux
База данных поддерживаемых устройств
облегчает подключение и отладку
Отображение отладки и трассировки
Streamline analyzer для Linux/Android
Системный взгляд: дает понимание
взаимодействия ПО с SoC компонентами
(fabric, memory controllers, GPU и т.д.)
Energy profiling: оптимизация
энергопотребления и времени жизни
батареи
Оптимизированный ARM Compiler
Быстрый, компактный и точный код
Поддерживает все ARM устройства
DS-5 – основные черты
ARM Streamline
DS-5 Debugger
5
Стандартный компилятор для Linux
Готовая к работе, компактная и проверенная версия GNU
Compiler для ARM Linux
Тщательно протестирован с помощью Free Software
Foundation compiler collection regression suite
На базе дистрибутива GCC 4.5.1
Поддержка - только через web форум
Расширенная поддержка архитектуры ARM
Поддержаны системы команд Thumb-2 и NEON
Поддержаны все новые процессоры Cortex A
Примеры, приложения и библиотеки
Включен во все редакции DS-5
GNU Compiler Compilation
Tools
6
Стандартный компилятор для архитектуры ARM
Самая ранняя поддержка новых процессоров
Система команд, расширения DSP и сопроцессоры
Оптимизация работы конвейеров
Профессиональная техническая поддержка
Исправление ошибок в том числе и в старых версиях компилятора
Хорошо совместим с GCC
Делает сборку большинства
Linux open-source packages
ARM Compiler Compiler
80%
90%
100%
110%
120%
130%
RVDS 3.1 RVDS 4.0 DS-5
Performance
Codesize
RVDS 2.2
7
Eclipse Framework Eclipse
Расширяемая платформа для различных программных
средств – стандарт среды разработки
Работает как на host, так и на target платформах и языках
программирования
Широко используется во многих компаниях
Предлагается 1100+ расширений plug-ins
Увеличивает эффективность разработки, объединяя в
единую структуру разнообразные инструментальные
средства
Android Development Kit
RTOS отладчики и профилировщики
ПО для ARM, DSP и других архитектур процессоров
Все компоненты DS-5 интегрированы в Eclipse
И расширяют его заказными plug-ins
8
IDE IDE
Гибкое управление окнами
Гибкое, согласованное, быстрое
Поддерживает 2 экрана
Редактирование C/C++ and Assembler
Выделение синтаксиса цветом
Контекстный ассистент (автодополн.)
Просмотр рабочей зоны и всего файла
Управление проектами
Графический обзор проектов
Makefiles и project settings
Статический анализ образов ARM -
объектных файлов и исполняемых
модулей
9
Performance
Analyzer Streamline
Профилировщик и анализатор
производительности для Linux и Android
Для сбора данных использует технологию
выборки – на базе выборочных данных,
событий OS и комментариев пользователя
Временной и статистический анализ
Мощное программное решение
Требуется соединение через Eth, USB между target и host PC
Не требуется HW - только SW модуль target kernel и daemon
Данные могут передаваться не сразу, а постепенно - для
продолжительного захвата в target с ограничениями по памяти
Конфигурируемый буфер трассировки на target
Streamline™ позволяет
Анализировать работу ПО на single & multi-core targets
Быстро и достоверно выявить узкие места и неэффективный код
10
Performance
Analyzer Системный взгляд
Событие снижающее
производительность
Кто вероятный
нарушитель? Корреляция событий с исполнением ПО
на уровне процесса, потока и функции
Анализ на определенных
временных интервалах Установка линейкой интервала времени
для генерации статистики
Zoom in/out разрешение
от sec до ms Отображение данных с разрешением
равным частоте выборки
Streamline дает системный взгляд, и
позволяет проанализировать, как CPU
взаимодействует с остальными
элементами SoC
11
Performance
Analyzer Многопроцессорные (SMP)
Общая и отдельная для каждого ядра производительность
Улучшение баланса загрузки системы и параллельной работы
приложений, идентификация расхождений в синхронизации
Есть ли симметрия?
Чтобы понять в чем отличия
картинки для core могут быть растянуты
Какое ядро выполняет
какой поток? Выявляет расхождения в параллелизме
между ядрами при распределении потоков
Кто вызывает проблему? Маркер помогает найти, какой поток
вызывает то или иное событие
12
DS-5 Energy Probe
Корреляция энергопотребления с исполнением ПО в Streamline
Просто идентифицировать что вызывает макс потребление
Скоро доступен
Energy Probe attached to Beagle
Performance data
collection (TCP/IP)
Power data to host via USB
DS-5 correlates
Performance/Power/Software
Легкое определение источников неэффективного
программного кода с точки зрения энергопотребления
Performance
Analyzer
18
Технология ARM
для отладки и трассировки
19
Что такое CoreSight?
Архитектура ARM для отладки и трассировки - результат 20-ти лет опыта
Обеспечивает прозрачность отладки и управление всей системой
Используется при аппаратном и программном проектировании и оптимизации
Модульная, гибкая архитектура поддерживает ARM IP и другие IP
Промышленный стандарт со всесторонней поддержкой средствами разработки
Технология CoreSight – ключевое направление для всех решений ARM от MCU до многоядерных платформ
CoreSight - взгляд в будущее Обеспечивает преемственность для будущих
устройств. Те возможности, что не используются сегодня, будут востребованы завтра
21
Прямой доступ в память работающей системы
Чтение и запись в память, доступ к переменным
Установка точек останова во время исполнения программы
Гибкие опции трассировки
Интегрированная трассировка данных Data Trace
Трассировка команд Instruction Trace
Использование стандартных интерфейсов
Основные задачи сегодня:
Как проникнуть внутрь еще более сложной системы и
разобраться в ее работе? (Разработчик приложения не может
использовать средства отладки "bare-metal”)
Как может архитектура отладки и трассировки помочь
программисту задействовать все возможности платформы?
CoreSight – легко отлаживать
22
CoreSight сегодня
Cortex-A8 3D Engine CTI
ETM
Video DSP Image DSP CTI CTI
Trace
Trace bus TPIU
DAP
STM
Debug bus
Syste
m b
us
SWD/
JTAG
CTM
Специальные шины
debug & trace
Логика CoreSight
управляется через
Debug Access Port
Cross-Trigger Matrix
для отладки
системы в режиме
start/stop
Trace Memory
Controller
используется для
назначения
источника на выход
трассировки
Пример отладки и трассировки медиаустройства
CoreSight debug logic and trace logic in orange & green
23
Hardware
Events
Сохраняет данные трассировки в циклический буфер RAM
Идеален в случае, когда доп. выводы не могут быть отведены под
трассировку или скорость трассировки слишком высока для off chip
capture
Встроенный буфер трассировки (ETB)
Cortex-A8 3D Engine
ETM
Image DSP
Trace
Trace bus ETB
Доступ к данным
трассировки для их
анализа через DAP
Данные
трассировки
доступны
программно через
Application Code
как память
периферии
Application
Code S
yste
m b
us
STM
SWD/
JTAG
DAP
Debug bus
Global
Timestamp
24
DSTREAM Debug & Trace Unit
Высоко производительная трассировка и быстрая
загрузка массива данных в память
Интерфейсы USB 2.0 и Ethernet 10/100base-T
Probe для разъемов JTAG, CoreSight, TI и MIPI
Алгоритмы быстрой загрузки массивов данных в память
Feature Specification
JTAG speed 60 MHz
Download speed 2.5 MB/s
Trace buffer 4GB
Trace speed 600 Mbps/pin (16-bit)
Hardware
Debug
25
Подключение к host computer
USB 2.0 для локального подключения
и потоковой трассировки
Ethernet для удаленного доступа к target
Внутренняя архитектура
FPGA для управления работой JTAG
FPGA для сжатия trace и буфера 4 GB
Подключение к target
Поддержка всех существующих и будущих
ARM интерфейсов для debug и trace
Прямое подключение к target плоским кабелем
или кабелем MICTOR
Подключение DS-5 Debugger к HW через JTAG
DS-5 Debugger подключается через gdbserver с помощью
программы-агента на target - cобирает данные для передачи на host
,
DSTREAM Hardware
26
Target Connection Diagram
ARM
Processor
Ethernet
Controller
DAP
Memory
System Fabric
Other SoC
blocks
ETM or
PTM Trace Port
Interface
Debug
and
Trace
Fabric
GDB Remote
Protocol over
Ethernet
RDDI Protocol
over Ethernet
or USB
JTAG or
SWD
Trace
APPLICATON DEBUG
BOOT CODE AND DRIVER DEBUG
27
Этапы разработки системы
DSTREAM незаменим при разработке новых платформ
Прямое подключение к регистрам через CoreSight Debug Access
Port (DAP) для проверки инфраструктуры отладки SoC
Управление процессором через JTAG/SWD для доводки системы
Останов процессора, доступ к памяти и периферии, доступ к
сопроцессору и другим системным ресурсам
Разработка загрузочного кода, драйверов OS, приложений RTOS
На более поздних этапах DSTREAM также незаменим
Виртуальный Ethernet через JTAG освобождает ресурсы target
Запись исполнения ПО в on-chip Embedded Trace Buffer, далее в
4GB trace buffer и далее в хост компьютер
Исполнение скрипта Python для конфигурирования target
Конфигурирование JTAG test access port - получение доступа к
структуре отладки устройства - одновременно с сеансом отладки
28
DS-5 сконфигурирован для отладки 80+ устройств
Поддержка Atmel, Freescale, Marvell, NXP, Samsung, ST and TI
Добавление поддержки для заказных устройств
Device Configuration Database Device
Database
Configuration Database
Platform set-up
JTAG/SWD connection
Configuration scripts
ETB and off-chip trace
Debugger set-up
Target connection
Memory map
Peripheral register views
29
TI Supported Devices
Device Validated Platform
•AM335x, OMAP5 in development, Appleton/Concerto planned
30
DS-5 Debug Levels
Bare-metal Debug (без OS)
Отладка заказных систем и драйверов (JTAG)
Полное управление процессором и регистрами
HW Breakpoints, Watchpoints, Trace
Kernel/Driver Debug
Bare-metal + kernel debug
Наглядный анализ процессов и потоков threads
Application Debug
Использует gdbserver на target
Нет необходимости использовать DSTREAM
Streamline Profiling
Использует модуль gator kernel и резидентный daemon
Нет необходимости использовать DSTREAM
31
DS-5 поддерживает отладку приложений bare metal и
разработку ядра и системы через JTAG/SWD
Подключение к target сразу же после reset
Не требует для работы дополнительных физических
интерфейсов и программных драйверов
Не требует вставлять специальные команды
От разработки boot кода до портирования ядра и драйверов
Поддержка сразу нескольких соединений к многоядерной
системе через один интерфейс JTAG
Разработчику видны как потоки,
так и ресурсы ядра
Поддержана одновременная
отладка ядра (через JTAG)
и приложений (через GDBserver)
Bare Metal and Kernel Debug
32
Kernel Debug
DS-5 Debug Levels
DS-5 Eclipse
DS-5 Debugger [C/C++]
gdbserver
Linux Application
System Libraries
Linux Kernel
DSTREAM
JTAG/SWD
Ethernet
Serial
HOST
(Linux or Windows)
TARGET
Application Libraries
ARM Streamline
gatord
gator.ko
ARM Processor CoreSight
Bare-metal Debug
System Profiling Application Debug
33
DS-5 поддерживает отладку приложений через gdbserver
при подключении с помощью программы-агента на target
Поддерживает gdbserver, source и binary коды во всех
существующие дистрибутивы Linux и Android
Подключение к target через последовательный интерфейс или Eth
DSTREAM поддерживает виртуальный Ethernet через JTAG
Run-mode debug – ядро и остальные потоки никогда не
останавливаются
Multi-threaded, multi-core- поддержка нескольких потоков и
многоядерных процессоров
DS-5 поддерживает отладку родных библиотек и
приложений Android
Современный gdbserver позволяет вести отладку NEON и
многопотоковых приложений
Можно одновременно отлаживать несколько приложений
Application Debug
34
DS-5 и Android Tools
DS-5 Eclipse
Android Debugger
ADT Plugin [Java] DS-5 Debugger [C/C++]
adb tool
adb deamon gdbserver [attached]
VM Process
Dalvik VM
Application
(.dex)
Java
Debug
Support
Dalvik VM Interpreter
Native Libraries
DSTREAM
SWD/JTAG
USB / Ethernet
HOST
Android
TARGET
ARM Streamline
gatord
Android / Linux Kernel gator.ko
ARM Processor CoreSight
35
Trace-based vs. Sample-based Profiling
Trace-based
ЗА
Запись всех
исполняемых команд
Не вмешивается в
работу программы
ПРОТИВ
Требуется trace unit ($$)
Сильно ограниченный по
времени захват данных
Сложные настройки
Обычно мало что
знает о OS
Streamline’s sample-based
ЗА
Без дополнительного HW
Анализ за 1 час и более
Привязан к событиям в OS
Статистически значимые
результаты
Удаленно и на серийном
устройстве
ПРОТИВ
Не для наблюдения за
событиями порядка ms
Привносит незначительные
накладные расходы
36
Feature BASIC Pro
Eclipse IDE
Application Debug
Streamline Performance Analyzer
GNU Compiler
Versatile Reference Virtual Platform Cortex-A8 Cortex-A8
Cortex-A9 MP
Energy Probe
Kernel and Driver
• Hardware debug
• CoreSight trace
ARM Compiler
DS-5 Editions
Подробная информация в таблице спецификации:
http://www.arm.com/products/tools/software-tools/ds-5
37
Законченное, профессионально поддерживаемое
решение для ARM
Поддержка всех новых ARM процессоров и CoreSight IP
Различные по составу пакеты для широкого круга пользователей
DS-5 увеличивает эффективность работы
Компилятор, лучший в своем классе с точки зрения размера кода
и производительности
Мощный и интуитивный графический отладчик и профилировщик
DS-5 минимизирует проектные риски
Доступ к технической поддержке в течение 1 года и обновления
раз в два месяца
Команда поддержки экспертов по всему миру в части ARM
software и SoC design
Почему DS-5?
38
Web поддержка DS-5
осуществляется на сайте ARM
www.arm.com/ds5
Информация на сайте
Информация о продуктах
Документация
Статьи и форумы
Примеры приложений
Через сайт можно
Запросить техническую поддержку
Загрузить последние версии ПО
Обратная связь с разработчиками
Web Infrastructure
39
MDK-ARM vs DS-5
MDK-ARM DS-5
Core Support
Processor families ARM7, ARM9,
Cortex-M, Cortex-R4
All ARM processors
Memory Management Unit (MMU) No Yes
Multicore (SMP) No Yes
Development Environment
IDE uVision DS-5 Eclipse
Host OS Windows Windows, Linux
Target OS and Middleware
OS awareness RTX, MQX, Micrium, CMX,
Quadros RTXC
Linux, Android, ENEA OSE
Middleware Networking, GUI, file system, etc. No
Debug and Trace
StreamingTrace Yes, with ULINKpro adapter Yes, with DSTREAM adapter
Instruction & Data Trace ETM, DWT ETM, PTM
Instrumentation Trace ITM ITM, STM
40
Спасибо!