Ответы на вопросы (953577), страница 6
Текст из файла (страница 6)
В зависимости от класса используемого отладчика, различные симуляторы могут поддерживать высокоуровневую символьную отладку программ.
Некоторые модели симуляторов могут содержать ряд дополнительных программных средств, таких, например, как: интерфейс внешней среды, встроенную интегрированную среду разработки.
В реальной системе микроконтроллер обычно занимается считыванием информации с подключенных внешних устройств (датчиков), обработкой этой информации и выдачей управляющих воздействий на исполнительные устройства. Чтобы в симуляторе не обладающем интерфейсом внешней среды смоделировать работу датчика, нужно вручную изменять текущее состояние модели периферийного устройства, к которому в реальной системе подключен датчик. Если, например, при приеме байта через последовательный порт взводится некоторый флажок, а сам байт попадает в определенный регистр, то оба эти действия нужно производить в таком симуляторе вручную. Наличие же интерфейса внешней среды позволяет пользователю создавать и гибко использовать модель внешней среды микроконтроллера, функционирующую и взаимодействующую с отлаживаемой программой по заданному алгоритму.
Очевидной особенностью программных симуляторов является то обстоятельство, что исполнение программ, загруженных в симулятор, происходит в масштабе времени, отличном от реального. Однако, низкая цена, возможность ведения отладки даже в условиях отсутствия макета отлаживаемого устройства делают программные симуляторы весьма эффективным средством отладки. Отдельно необходимо подчеркнуть, что существует целый класс ошибок, которые могут быть обнаружены только при помощи симулятора.
Трассировщик
В сущности, трассировщик представляет собой логический анализатор, работающий синхронно с процессором и фиксирующий поток выполняемых инструкций и состояния выбранных внешних сигналов. Существуют модели внутрисхемных эмуляторов, которые позволяют трассировать не только внешние сигналы, но и состояния внутренних ресурсов микроконтроллера, например, регистров. Такие эмуляторы используют специальные версии микроконтроллеров (эмуляционные кристаллы).
Процессор точек останова
Процессор точек останова позволяет останавливать выполнение программы или выполнять иные действия, например запускать или останавливать трассировщик при выполнении заданных пользователем условий. В отличие от механизма обычных точек останова, процессор точек останова позволяет формировать и отслеживать условия практически любой степени сложности, и при этом эмулируемый процесс не выводится из масштаба реального времени.
Профилировщик
Профилировщик (иначе анализатор эффективности программного кода) позволяет получить по результатам прогона отлаживаемой программы следующую информацию:
-
Количество обращений к различным участкам программы;
-
Время, затраченное на выполнение различных участков программы.
-
Анализ статистической информации, поставляемой профилировщиком, позволяет легко выявлять “мертвые” или перенапряженные участки программ, и в результате оптимизировать структуру отлаживаемой программы.
Аппаратные средства разработки и отладки микроконтроллеров.
К числу основных инструментальных средств отладки относятся:
-
Внутрисхемные эмуляторы;
-
Программные симуляторы;
-
Платы развития (оценочные платы);
-
Мониторы отладки;
-
Эмуляторы ПЗУ.
Данный список не исчерпывает всех типов существующих инструментальных средств отладки. Кроме указанных, существуют и комбинированные устройства и наборы, которые позволяют компенсировать недостатки основных средств, взятых порознь.
Внутрисхемный эмулятор - программно аппаратное средство, способное замещать собой эмулируемый процессор в реальной схеме. Внутрисхемный эмулятор - это наиболее мощное и универсальное отладочное средство.
По сути дела, "хороший" внутрисхемный эмулятор делает процесс функционирования отлаживаемого контроллера прозрачным, т.е. легко контролируемым, произвольно управляемым и модифицируемым по воле разработчика.
Функционально внутрисхемные эмуляторы делятся на стыкуемые с внешней вычислительной машиной (обычно это бывает IBM PC), и функционирующие автономно. Автономные внутрисхемные эмуляторы имеют индивидуальные вычислительные ресурсы, средства ввода-вывода, не требуют для своей нормальной работы стыковки с какими-либо внешними вычислительными средствами, но за это пользователю приходится расплачиваться либо существенно более высокой ценой, либо пониженными функциональными и сервисными возможностями по сравнению с аналогичными моделями, стыкуемыми с IBM PC.
Обычно, стыковка внутрисхемного эмулятора с отлаживаемой системой производится при помощи эмуляционного кабеля со специальной эмуляционной головкой. Эмуляционная головка вставляется вместо микроконтроллера в отлаживаемую систему. Если микроконтроллер невозможно удалить из отлаживаемой системы, то использование эмулятора возможно, только если этот микроконтроллер имеет отладочный режим, при котором все его выводы находятся в третьем состоянии. В этом случае для подключения эмулятора используют специальный адаптер-клипсу, который подключается непосредственно к выводам эмулируемого микроконтроллера.
Как минимум, эмулятор содержит следующие функциональные блоки:
-
Отладчик;
-
Узел эмуляции микроконтроллера;
-
Эмуляционная память;
-
Подсистема точек останова.
Более продвинутые модели могут содержать дополнительно:
-
Процессор точек останова;
-
Трассировщик;
-
Профилировщик (анализатор эффективности программного кода);
-
Таймер реального времени;
Интегрированная среда разработки.
Интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами (программным отладчиком-симулятором, внутрисхемным эмулятором, эмулятором ПЗУ и программатором).
Строго говоря, интегрированные среды разработки не относятся к числу средств отладки, тем не менее обойти вниманием данный класс программных средств, существенно облегчающий и ускоряющий процесс разработки и отладки микропроцессорных систем было бы неправильно.
При традиционном подходе, начальный этап написания программы строится следующим образом:
-
Исходный текст набирается при помощи какого-либо текстового редактора. По завершении набора, работа с текстовым редактором прекращается и запускается кросс компилятор. Как правило, вновь написанная программа содержит синтаксические ошибки, и компилятор сообщает о них на консоль оператора.
-
Вновь запускается текстовый редактор, и оператор должен найти и устранить выявленные ошибки, при этом сообщения о характере ошибок выведенные компилятором уже не видны, так как экран занят текстовым редактором.
И этот цикл может повторяться не один раз. Если программа имеет большой объем, собирается из различных частей, и подвергается длительному редактированию или модернизации, то даже этот начальный этап может потребовать много сил и времени. После этого наступает этап отладки программы и к редактору с компилятором добавляется эмулятор или симулятор, за работой которого хотелось бы следить прямо по тексту программы в текстовом редакторе.
Избежать большого объема однообразных действий и тем самым существенно повысить эффективность процесса разработки и отладки позволяют т.н. интегрированные среды (оболочки) разработки (Integrated Development Environment, IDE).
Работа в интегрированной среде дает программисту:
-
Возможность использования встроенного многофайлового текстового редактора, специально ориентированного на работу с исходными текстами программ;
-
Диагностика выявленных при компиляции ошибок, и исходный текст программы, доступный редактированию, выводятся одновременно в многооконном режиме;
-
Возможность организации и ведения параллельной работы над несколькими проектами. Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого проекта;
-
Перекомпиляции подвергаются только редактировавшиеся модули;
-
Возможность загрузки отлаживаемой программы в имеющиеся средства отладки, и работы с ними без выхода из оболочки;
-
Возможность подключения к оболочке практически любых программных средств.
-
В последнее время, функции интегрированных сред разработки становятся стандартной принадлежностью программных интерфейсов эмуляторов и отладчиков-симуляторов.
Подобные функциональные возможности, в сочетании с дружественным интерфейсом, в состоянии существенно увеличить скорость разработки программ для микроконтроллеров и процессоров цифровой обработки сигналов.
Дизассемблеры MCS-51.
Дизассемблер предназначен для преобразования исполняемого кода микроконтроллеров MCS-51 в текст программы на языке ассемблера.
Форматы входных данных: HEX, OBJ, BIN.
Работа производится с помощью системы меню.
Поддерживаются процессоры:
-
8051/8031
-
8052/8032
-
80512/80532
-
80(C)515/80(C)535
-
80C517/80C537
-
80C515A/80C535A
-
80C517A/80C537A
-
8035/8048/8041
-
z80
а также их модификации.
Макроассемблер A51.
Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.
A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Include debugging information” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора или внутрисхемного эмулятора.
Оптимизирующий кросс-компилятор C51
Язык C - универсальный язык программирования, который обеспечивает эффективность кода, элементы структурного программирования и имеет богатый набор операторов. Универсальность, отсутствие ограничений реализации делают язык C удобным и эффективным средством программирования для широкого разнообразия задач. Множество прикладных программ может быть написано легче и эффективнее на языке C, чем на других более специализированных языках.
C51 - полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.
Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:
-
глубокого знания системы команд процессора не требуется, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;
-
распределение регистров и способы адресации управляются полностью транслятором;
-
лучшая читаемость программы, используются ключевые слова и функции, которые более свойственны человеческой мысли;
-
время разработки программ и их отладки значительно короче в сравнении с программированием на ассемблере;
-
библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в прикладную программу;
-
существующие программы могут многократно использоваться в новых программах, используя модульные методы программирования.
Компоновщик L51
Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.
Компоновщик автоматически выбирает соответствующие библиотеки поддержки и связывает только требуемые модули из библиотек. Установки по умолчанию для L51 выбраны так, чтобы они подходили для большинства прикладных программ, но можно определить и заказные установки.
Интегрированная среда проектирования µVision2 IDE
Основные характеристики:
-
Интегрированная среда проектирования (Integrated Development Environment) µVision2 IDE включает Project Management, Source Code Editing и Program Debugging, что существенно ускоряет разработку: во время редактирования исходного кода можно сконфигурировать отладчик, а в процессе отладки - откорректировать исходный код.
-
В режиме симуляции отладчик µVision2 Debugger моделирует всю систему команд МК и симулирует всю периферию, позволяя провести тестирование прикладного программного кода и исследовать различные конфигурации для оптимизации аппаратной части проекта
-
Встроенный язык описания периферии для задания входных воздействий для моделируемого устройства, диалоговые окна позволяют просмотреть и изменить установки периферии
-
Точная симуляция сложных систем при подключении драйверов периферии, определенных пользователем, осуществляется с помощью Advanced Simulation Interface (AGSI)
-
Для тщательного тестирования систем, критичных с точки зрения безопасности, служит анализатор эффективности кода Code Coverage, который осуществляет статистический анализ исполнения программы
-
µVision2 Device Database автоматически конфигурирует средства разработки для всех поддерживаемых МК, что практически исключает ошибки в установках и сокращает время настройки
-
µVision2 IDE интегрирует дополнительные средства: VCS, CASE, CASE и программирования FLASH, все детали конфигурации сохраняются в µVision2 project
-
Идентичный интерфейс пользователя для Target Debugger и Simulator сокращает процесс освоения.
Набор инструментальных средств:
-
Project Management - управление проектами;
-
Device Database - интеллектуальная база данных;
-
Building Projects - автоматическая генерация проекта;
-
Source Code Editor - интегрированный редактор;
-
Integrated Utilities - средства, облегчающие создание проекта;
-
µVision2 Debugger - отладчик исходных текстов программ;
Раздел «Project Management »
Программный проект состоит из большого числа связанных друг с другом исходных файлов, которые часто обрабатываются индивидуально. Например, часть файлов подлежит С-компиляции, другие следует ассемблировать, а третьи требуют некоторой специальной обработки пользователем. Здесь на помощь приходит Менеджер проекта, который дает разработчику методику создания проекта из исходных файлов, различных опций разработки и директорий. Проект в µVision2 может сгенерировать одну или несколько target-программ, каждая из которых компилируется по индивидуальным правилам. На основе исходных файлов создаются target-программы, объединенные в группы Groups. При этом достигается простая интеграция различных исходных файлов в проект.
Раздел «Device Database »
База данных содержит детальную информацию о всех устройствах, поддерживаемых инструментальными средствами Keil. База данных поддерживает параметрический поиск МК, удовлетворяющего специфическим требованиям. При выборе устройства из базы данных все требуемые опции в проекте под управлением µVision2 устанавливаются автоматически. Device Database содержит подробное описание конфигурирования и ссылки на другие источники информации (data sheets, оценочные платы, эмуляторы).