Неограниченное число точек останова во Flash памяти при отладке с эмулятором J-Link

Программное обеспечение J-Link поставляется с дополнительной функцией, которая называется Неограниченное число точек останова во флэш-памяти. Эта функция позволяет пользователю установить неограниченное число точек останова при отладке во флэш-памяти.

Без этой функции ПО число точек останова, которое может быть установлено во флэш-памяти, ограничено количеством аппаратных точек останова, поддерживаемых блоком отладки CPU (две точки на ARM 7/9 и 4-6 точек на Cortex-Mx).

Неограниченное число точек останова при отладке с J-Link может быть установлено как для внутренней, так и для внешней флэш-памяти.

J-Link применяет стратегию максимального использования аппаратных точек останова, но когда они все задействованы, эмулятор автоматически использует программные точки останова (для моделей J-Link PLUS, J-Link ULTRA + или J-Link PRO).

Функция, позволяющая устанавливать неограниченное число точек останова, работает даже в тех ситуациях, когда не могут быть использованы аппаратные точки останова, например, при работе с внешней памятью или когда память находится за пределами области, в которой могут быть установлены аппаратные точки останова. Для большинства Cortex-M3 и M4 аппаратные точки останова не могут быть применены к внешней памяти, в то время как программные точки останова могут быть использованы.

Как работают точки останова

Итак, существует два типа точек останова: аппаратные точки и программные. Аппаратные требуют использования специального блока микроконтроллера для каждой точки, т.е. аппаратные средства определяют, сколько точек останова могут быть использованы одновременно. Например, для ARM7 и ARM9 всего одновременно можно установить две таких точки наблюдения (по терминологии ARM). Аппаратные точки останова не требуют модификации программного кода.

Программные точки останова различны: отладчик модифицирует программу и заменяет инструкции точек останова специальными величинами. Дополнительные программные точки останова не требуют использования дополнительных аппаратных блоков процессора. Эта стандартная процедура доступна для большинства отладчиков, тем не менее, она требует, чтобы программа располагалась в ОЗУ.

Использование неограниченного числа точек останова

Можно ли использовать неограниченное число точек останова в CFI NOR Fash?

Да, для некоторых процессоров это единственный способ установить точки останова во внешней флэш-памяти. Например, в процессорах с ядром Cortex-M число аппаратных точек останова не превышает 6, и они не могут быть установлены для внешней флэш-памяти из-за ограничения диапазона адресов аппаратного блока. Это значит: если вы используете, например, Cortex-M3 или Cortex-M4 с внешней флэш-памятью, программа не может быть отлажена с использованием популярных эмуляторов, кроме как с J-Link с лицензией на неограниченное число точек останова.

Другими словами: когда отлаживается программа во внешней флэш-памяти на устройстве с Cortex-M процессором, J-Link с лицензией на неограниченное число точек останова (например, J-Link ULTRA +) является практически обязательным.

Особенности программных точек останова во флэш-памяти

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

Как это работает?

В основном очень просто. Программное обеспечение J-Link перепрограммирует сектор флэш-памяти, чтобы установить или удалить точку останова. Специальный код устанавливает и стирает точки останова во флэш-памяти экстремально быстро. Разница по производительности при размещении точек останова в RAM и Flash едва заметна.

Компания Segger приложила много усилий для создания этой полезной и удобной технологии.

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

Все ресурсы ARM микроконтроллера доступны для прикладной программы, нет области памяти, потерянной для отладки.

Лицензирование

Программное обеспечение лицензируется на основе J-Link, т.е требуется J-Link с Flash Breakpoint. J-Link Flash Breakpoints может использоваться с J-Link ARM RDI/ RDDI  и J-Link GDB Server. Если вы хотите использовать Flash Breakpoint c J-Link ARM RDI/ RDDI, вам также понадобится дополнительная лицензия для этого программного компонента.

Для получения бесплатной 30-дневной тестовой лицензии необходимо отправить запрос на email sales@segger.com с указанием серийного номера J-Link.

Использование неограниченного числа точек останова с различными программными компонентами

Неограниченное число точек останова может быть использовано со следующими программными компонентами J-Link:

  • J-Link DLL (например, если вы используете J-Link DLL изначально в IAR Embedded Workbench for ARM или RealView® MDK)
  • J-Link ARM RDI/ RDDI
  • J-Link GDB Server

Внимание! Функция неограниченного числа точек останова во флэш-памяти  для базовой модели J-Link (J-Link Base) может использоваться бесплатно для оценки. Период такого использования не ограничен. Для коммерческого применения требуется отдельная лицензия.

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

Статью составил и подготовил
Шрага Александр,
a.shraga@terraelectronica.ru

Производитель: SEGGER MICROCONTROLLER GMBH & Co. KG
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
J-LINK
J-LINK
SEGGER MICROCONTROLLER GMBH & Co. KG
Арт.: 556624 ИНФО PDF
Доступно: 91 шт. от: 18930 руб.
J-Link – базовый вариант линейки JTAG эмуляторов с питанием от USB порта и широким спектром поддерживаемых CPU ядер
J-LINK 18930,00
91 шт.
(на складе)
J-LINK PRO
J-LINK PRO
SEGGER MICROCONTROLLER GMBH & Co. KG
Арт.: 556625 ИНФО PDF
Доступно: 12 шт.
Выбрать
условия
поставки
Он может подключаться к ПК, на котором установлена ОС Windows (2000/XP/Vista) как через USB, так и через Ethernet
J-LINK PRO
12 шт.
(под заказ)
Выбрать
условия
поставки
J-LINK ULTRA+
J-LINK ULTRA+
SEGGER MICROCONTROLLER GMBH & Co. KG
Арт.: 1027585 ИНФО PDF
Доступно: 12 шт. от: 48670 руб.
JTAG/SWD эмулятор для поддержки ARM/Cortex и других CPU, совместим со стандартным J-Link.
J-LINK ULTRA+ 48670,00
3 шт.
(на складе)
9 шт.
(под заказ)
J-Link Plus
J-Link Plus
SEGGER MICROCONTROLLER GMBH & Co. KG
Арт.: 1089106 ИНФО PDF
Доступно: 31 шт. от: 42470 руб.
J-Link Plus – улучшенная версия самого популярного JTAG отладчика для ARM и Cortex-микроконтроллеров
J-Link Plus 42470,00
13 шт.
(на складе)
18 шт.
(под заказ)