WikiDer > Внутрисхемная эмуляция

In-circuit emulation

Внутрисхемная эмуляция (ЛЕД) - это использование аппаратного устройства или внутрисхемный эмулятор привыкший отлаживать в программного обеспечения из Встроенная система. Он работает с использованием процессора с дополнительной возможностью поддержки операций отладки, а также для выполнения основной функции системы. В частности, для старых систем с ограниченным числом процессоров это обычно включало временную замену процессора аппаратным эмулятором: более мощной, но более дорогой версией. Исторически это было в виде связующий процессор который имеет множество внутренних сигналов, выведенных с целью отладки. Эти сигналы предоставляют информацию о состоянии процессора.

В последнее время этот термин также охватывает Совместная группа действий по тестированию (JTAG) аппаратные отладчики, обеспечивающие эквивалентный доступ с использованием отладка на кристалле оборудование со стандартными производственными микросхемами. Использование стандартных микросхем вместо заказных версий делает технологию повсеместной и недорогой и устраняет большинство различий между средой разработки и средой выполнения. В этом общем случае внутрисхемный эмулятор срок - это неправильное употреблениеИногда это сбивает с толку, потому что эмуляция больше не используется.

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

Функция

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

An эмулятор получил свое название, потому что имитирует (имитирует) центральное процессорное устройство (CPU) компьютера встроенной системы. Традиционно у него был штекер, который вставлялся в разъем, в котором процессор Интегральная схема чип обычно ставится. Большинство современных систем напрямую используют ЦП целевой системы со специальным доступом для отладки на основе JTAG. Эмуляция процессора или прямой доступ к нему JTAG позволяет ICE делать все, что может делать процессор, но под контролем разработчика программного обеспечения.

ДВС прикрепляют компьютерный терминал или же персональный компьютер (ПК) во встроенную систему. Терминал или ПК обеспечивает интерактивный пользовательский интерфейс для программиста, чтобы исследовать и контролировать встроенную систему. Например, обычно уровень исходного кода отладчик с графическим оконным интерфейсом, который через адаптер JTAG (эмулятор) связывается со встроенной целевой системой, не имеющей графического пользовательского интерфейса.

Примечательно, что когда их программа дает сбой, большинство встроенных систем просто становятся инертные комки нефункционирующей электроники. Во встроенных системах часто отсутствуют базовые функции для обнаружения признаков сбой программного обеспечения, например блок управления памятью (MMU) для обнаружения ошибок доступа к памяти. Без ICE разработка встроенных систем может быть чрезвычайно сложной, потому что обычно невозможно определить, что пошло не так. С помощью ICE программист обычно может протестировать фрагменты кода, затем выделить ошибку в конкретном разделе кода, а затем проверить неисправный код и переписать его для решения проблемы.

При использовании ICE обеспечивает программисту выполнение контрольные точки, отображение и мониторинг памяти, а также управление вводом / выводом. Помимо этого, ICE можно запрограммировать на поиск любого диапазона критериев соответствия, на котором можно остановиться, в попытке определить источник сбоя.

Самый современный микроконтроллеры использовать ресурсы, предоставленные в изготовленной версии микроконтроллера, для программирования устройства, эмуляции и отладки функций, вместо того, чтобы нуждаться в другой специальной версии эмуляции (то есть привязке) целевого микроконтроллера.[1] Несмотря на то, что это рентабельный метод, поскольку блок ICE управляет только эмуляцией, а не фактически эмулирует целевой микроконтроллер, необходимо идти на компромиссы, чтобы поддерживать низкие цены во время производства, но при этом обеспечивать достаточно функций эмуляции для ) приложения-эмуляторы.

Преимущества

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

Большинство ICE состоит из блока адаптера, который находится между главным компьютером ICE и тестируемой системой. А контактный заголовок и кабель в сборе соединяет адаптер с розеткой, где центральное процессорное устройство (CPU) или микроконтроллер монтируется во встроенной системе. Последние ICE позволяют программистам получить доступ к встроенной схеме отладки, которая интегрирована в ЦП через JTAG или интерфейс фонового режима отладки (BDM) для отладки программного обеспечения встроенной системы. В этих системах часто используется стандартная версия микросхемы ЦП, и их можно просто подключить к порту отладки в производственной системе. Их иногда называют внутрисхемными отладчиками или ICD, чтобы отличить тот факт, что они не копируют функциональность ЦП, а вместо этого управляют уже существующим стандартным ЦП. Поскольку ЦП не требуется заменять, они могут работать на производственных блоках, в которые ЦП впаян и не подлежит замене. В Pentium x86 для помощи в отладке ICE использует специальный «режим проверки».[2]

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

Большинство хост-систем представляют собой обычные коммерческие компьютеры, не связанные с процессором, используемым для разработки. Например, Linux ПК может использоваться для разработки программного обеспечения для системы с использованием Freescale 68HC11 чип, процессор, который не может работать с Linux.

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

Отладка на кристалле

Отладка на кристалле является альтернативой внутрисхемной эмуляции. Он использует другой подход для достижения аналогичной цели.

Отладка на кристалле, часто называемая Совместная группа действий по тестированию (JTAG), использует предоставление дополнительного интерфейса отладки к действующему оборудованию в производственной системе. Он предоставляет те же функции, что и внутрисхемная отладка, например, проверка внутреннего состояния или переменных, и может иметь возможность устанавливать контрольные точки, точки останова и точки наблюдения. Разница в том, что это обеспечивается дополнительной микросхемой внутри производственного процессора, а не заменой процессора на сторонний эмулятор отладки. По этой причине некоторые функции ICE изменены спецификациями процессора. К плате контроллера добавляется дополнительный интерфейс JTAG, который требуется в каждой производственной системе, но поскольку для этого требуется всего несколько сигнальных контактов, дополнительные затраты минимальны. Интерфейсы JTAG изначально разрабатывались и до сих пор используются для тестирования в конце производства.

Смотрите также

Рекомендации

  1. ^ Кейл, Рейнхард. «Отладка с помощью микроконтроллеров Cortex-M3». www.embedded.com. Получено 25 мая, 2013.
  2. ^ http://www.rcollins.org/articles/probemd/ProbeMode.html

внешняя ссылка