- •Jtag – интерфейс и системные функции на его основе. Основные характеристики jtag – интерфейса.
- •Процедуры, программы, директивы ассемблера. Отладка прикладного программного обеспечения микроконтроллеров
- •Оптимизирующий кросс-компилятор. Компиляция и компоновка. Отладка.
- •Функциональные возможности программной среды разработки программного обеспечения (рпо). Установка. Окна
- •Области применения микропроцессорных систем. Расширение сфер применения
- •Программаторы. Логические анализаторы. Встроенные в микропроцессор средства отладки. Основные свойства операционной системы реального времени (ос рв)
Jtag – интерфейс и системные функции на его основе. Основные характеристики jtag – интерфейса.
Интерфейс предназначен для подключения сложных цифровых микросхем или устройств уровня печатной платы к стандартной аппаратуре тестирования и отладки.
Сложные цифровые микросхемы оснащаются этим интерфейсом для:
выходного контроля микросхем при производстве
тестирования собранных печатных плат
прошивки микросхем с памятью
отладочных работ при проектировании аппаратуры и программного обеспечения
JTAG-интерфейс задействует 4 вывода AVR-микроконтроллера. По JTAG-терминологии эти выводы в совокупности называются "Порт доступа к функциям тестирования" (TAP). В состав этого порта входят следующие сигналы:
TMS – Выбор режим тестирования. Данный вывод используется для навигации по цифровому автомату TAP-контроллера.
TCK: Синхронизация тестирования. JTAG-интерфейс работает синхронно по отношению TCK.
TDI: Тестовый ввод данных. Последовательный ввод данных сдвигом в регистр инструкции или регистр данных (цепи сканирования).
TDO: Тестовый вывод данных. Последовательный вывод данных из регистра инструкции или регистра данных.
Функциональное назначение этих линий:
· TDI (test data input — «вход тестовых данных») — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
· TDO (test data output — «выход тестовых данных») — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
· TCK (test clock — «тестовое тактирование») — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц;
· TMS (test mode select — «выбор режима тестирования») — обеспечивает переход схемы в/из режима тестирования и переключение между разными режимами тестирования.
· В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.
Процедуры, программы, директивы ассемблера. Отладка прикладного программного обеспечения микроконтроллеров
Процедуры:
Процедура представляет собой группу команд для решения конкретной подзадачи и обладает средствами получения управления из точки вызова задачи более высокого приоритета и возврата управления в эту точку.
Таким образом возможны три варианта описания процедуры:
в начале сегмента кода,
в конце сегмента кода,
в середине сегмента кода.
Для работы с процедурами предназначены команды CALL и RET. С помощью команды CALL выполняется вызов процедуры. Эта команда работает почти как безусловный переход, но одновременно в стек сохраняется текущее значение регистра IP. Это позволяет потом вернуться к тому месту в коде, откуда была вызвана процедура. В качестве операнда указывается адрес перехода (метка, регистр или ячейка памяти, содержащая адрес).
Возврат из процедуры выполняется командой RET. Эта команда восстанавливает значение из вершины стека в регистр IP.
Таким образом, выполнение программы продолжается с команды, следующей сразу после команды CALL.
Существует 2 типа вызовов процедур. Ближним называется вызов процедуры, которая находится в текущем сегменте кода(NEAR). Дальний вызов — это вызов процедуры в другом сегменте (FAR).
Директивы:
Директи́вы ассе́мблера — параметры (ключевые слова) в тексте программы, влияющие на процесс ассемблирования или свойства выходного файла. Директивы не транслируются непосредственно в коды операции. Напротив, они используются, чтобы корректировать местоположение программы в памяти, определять макрокоманды, инициализировать память и так далее. То есть это указания самому ассемблеру, а не команды микроконтроллера.
BYTE Зарезервировать байты в ОЗУ
CSEG Программный сегмент
DB Определить байты во флэш или EEPROM
DEF Назначить регистру символическое имя
DEVICE Определить устройство для которого компилируется программа
DSEG Сегмент данных
DW Определить слова во флэш или EEPROM
ENDM Конец макроса
EQU Установить постоянное выражение
ESEG Сегмент EEPROM
EXIT Выйти из файла
INCLUDE Вложить другой файл
LIST Включить генерацию листинга
LISTMAC Включить разворачивание макросов в листинге
MACRO Начало макроса
NOLIST Выключить генерацию листинга
ORG Установить положение в сегменте
SET Установить переменный символический эквивалент выражения
Программы:
Асемблер (assembler — сборщик) — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.
Как и сам язык ассемблера, ассемблеры, как правило, специфичны конкретной архитектуре, операционной системе и варианту синтаксиса языка. Вместе с тем существуют мультиплатформенные или вовсе универсальные (точнее, ограниченно-универсальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах. Среди последних можно также выделить группу кросс-ассемблеров, способных собирать машинный код и исполняемые модули (файлы) для других архитектур и ОС.
Ассемблирование может быть не первым и не последним этапом на пути получения исполнимого модуля программы. Так, многие компиляторы с языков программирования высокого уровня выдают результат в виде программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. Также результатом ассемблирования может быть не исполнимый, а объектный модуль, содержащий разрозненные и непривязанные друг к другу части машинного кода и данных программы, из которого (или из нескольких объектных модулей) в дальнейшем с помощью программы-компоновщика («линкера») может быть скомпонован исполнимый файл.
Наиболее известными ассемблерами для операционной системы DOS являлись Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM) и Watcom Assembler (WASM). Также в своё время был популярен простой ассемблер A86.
Отладка:
Отладка прикладного программного обеспечения осуществляется в несколько этапов.
Простые (синтаксические) ошибки выявляются уже на этапе трансляции.
Далее необходимо выполнить автономную отладку каждой процедуры в статическом режиме, позволяющую проверить правильность проводимых вычислений, правильность последовательности переходов внутри процедуры (отсутствие "зацикливания") и т.п.;
комплексная отладка
в статическом режиме, позволяющую проверить правильность алгоритма управления (по последовательности формирования управляющих воздействий);
в динамическом режиме без подключения объекта для определения реального времени выполнения программы и ее отдельных фрагментов.
Вышеперечисленные этапы отладки осуществляются обычно с использованием кросс-систем. В состав кросс-систем входят программы-отладчики (обобщенное имя — DEBUG), интерпретирующие (моделирующие) выполнение программ, написанных для МК. Кросс-отладчики позволяют промоделировать практически все возможные варианты работы программы и тем самым убедиться в ее работоспособности. На этом же этапе возможна проверка работоспособности программы при нештатных ситуациях в условиях поступления некорректных входных воздействий. Наиболее полная и комплексная отладка прикладного программного обеспечения совместно с аппаратурными средствами контроллера может быть произведена на инструментальной микроЭВМ.
