Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Функция [ править ]

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

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

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

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

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

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

Преимущества [ править ]

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

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

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

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

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

Отладка на кристалле [ править ]

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

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

См. Также [ править ]

  • Совместная группа действий по тестированию
  • Интерфейс фонового режима отладки
  • Аппаратная виртуализация
  • SoftICE

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Статья Джека Гэнссла в Уголке для начинающих
  • Как выбрать внутрисхемный эмулятор Джонатан Гектор