
Рисунок 120 – Функциональная схема интерфейса JTAG и отладочной системы

Рисунок 121 – Граф-автомат TAP-контроллера
TAP-контроллер
TAP-контроллер – цифровой автомат с 16 состояниями, который управляет работой схемой граничного сканирования, схемой JTAG-программирования или встроенной системой отладки. Граф-автомат, представленный на рисунке 121, зависит от сигнала TMS (его значение показывается рядом с переходом на другое состояние) в момент возникновения нарастающего фронта на TCK. Исходным состоянием после сброса при подаче питания является СБРОС ТЕСТ-ЛОГИКИ.
Все сдвиговые регистры выполняют первым ввод/вывод младших разрядов. Допустим, что текущим состоянием является ТЕСТ-СТАРТ/СВОБОДЕН, тогда типичным сценарием использования интерфейса JTAG является:
Формирование на входе TMS последовательности 1, 1, 0, 0 синхронно с нарастающим фронтом TCK для перевода в состояние сдвига регистра инструкции– СДВИГ ИР. Находясь в этом состоянии, выполняется сдвиг 4 разрядов JTAG-инструкции в регистр инструкции с входа TDI синхронно с нарастающим фронтом TCK. На входе TMS должен присутствовать низкий логический уровень в процессе ввода 3 младших разрядов для того, чтобы остаться в состоянии Сдвиг РИ. Старший разряд инструкции вводится сдвигом при выходе из данного состояния установкой лог. 1 на TMS. В процессе ввода инструкции через вывод TDI на выходе TDO выводится сдвигом код 0х01, означающий нахождение в состоянии СДВИГ РИ. JTAG-инструкция выбирает специфический регистр данных в качестве сдвигового регистра между выводами TDI и TDO, а также управляет схемой, связанной с регистром данных. Формирование на входе TMS последовательности 1, 1, 0 для повторного ввода в состояние ТЕСТ-СТАРТ/СВОБОДЕН. В состоянии МОДИФ. ИР инструкция защелкивается на параллельном выходе сдвигового регистра. Состояния ВЫХОД1 ИР, ПАУЗА ИР и ВЫХОД2 ИР используются только для навигации по цифровому автомату. Формирование на входе TMS последовательности 1, 0, 0 синхронного с нарастающими фронтами TCK для ввода состояния сдвига регистра данных – Сдвиг РД. Находясь в этом состоянии, загружается регистр данных (какой именно регистр определяется действующей инструкцией в регистре инструкции) с входа TDI нарастающим фронтом TCK. Для удержания состояния СДВИГ РД вход TMS должен оставаться в низком состоянии в процессе ввода всех разрядов за исключением последнего (старшего). Старший разряд вводится при выходе из этого состояния при установке высокого уровня на входе TMS. Во время последовательной записи в сдвиговый регистр с вывода TDI параллельные входы регистра данных захватываются в состоянии ЗАХВАТ РД и передаются сдвигом на выводе TDO. Формирование на входе TMS последовательности 1, 1, 0 для повторного ввода состояния ТЕСТ-СТАРТ/СВОБОДЕН. Если у выбранного регистра данных параллельный выход содержит защелку, то защелкивание происходит в состоянии МОДИФ. РД. Состояния ВЫХОД1 РД, ПАУЗА РД и ВЫХОД2 РД используются только для навигации по граф-автомату.Как показано на граф-автомате состояние ТЕСТ-СТАРТ/СВОБОДЕН не должно вводиться между выбором JTAG-инструкции и использованием регистров данных, а также некоторые JTAG-инструкции активизируют функции, которые работают даже в состоянии ТЕСТ-СТАРТ/СВОБОДЕН, что делает это состояние неприемлемым в качестве свободного состояния.
Прим.: Независимо от исходного состояния TAP-контроллера перейти в состояние СБРОС ТЕСТ-ЛОГИКИ можно путем удержания входа TMS в высоком состоянии в течение 5 тактов TCK.
Более детальная информация по техническим требованиям к JTAG приведена в специализированной литературе (см. "Список литературы").
Использование цепи граничного сканирования
Полное описание возможностей граничного сканирования дано в разделе “Граничное сканирование с соответствии с IEEE 1149.1 (JTAG)”.
Использование встроенной отладочной системы
Как показано на рисунке 120 аппаратная часть отладочной системы состоит из:
Скан-цепь на интерфейсе между внутренним AVR ЦПУ внутренними периферийными блоками
Блок точек прерывания
Коммуникационный интерфейс между ЦПУ и JTAG-системой
Все операции чтения или модификация/запись, необходимые для работы отладчика, выполнены путем применения AVR-инструкций через внутреннюю скан-цепь AVR ЦПУ. ЦПУ отправляет результат в память ввода-вывода по указанному адресу, которая является частью коммуникационного интерфейса между ЦПУ и JTAG-системой.
Блок точек прерывания поддерживает прерывания по изменению программного потока, пошаговое прерывание, две точки прерывания в памяти программ и две комбинированных точки прерывания. Вместе, четыре точки прерывания могут конфигурироваться как:
4 раздельных точки прерывания памяти программ
3 раздельных точки прерывания памяти программ + 1 точка прерывания памяти данных
2 раздельных точки прерывания памяти программ + 2 раздельных точки прерывания памяти данных
2 раздельных точки прерывания памяти программ + 1 точка прерывания памяти программ с маской ("множество точек прерывания")
2 раздельных точки прерывания памяти программ + 1 точка прерывания памяти данных с маской для задания множества точек прерываний
Однако, отладчик, например AVR Studio, может использовать только ограниченный набор этих возможностей, что снижает гибкость отладки для конечного пользователя. Перечень специфических JTAG-инструкций встроенной отладки представлен в разделе “Специальные JTAG-инструкции встроенной отладочной системы”.
Для разрешения работы порта доступа к функциям тестирования (TAP) необходимо запрограммировать конфигурационный бит JTAGEN. Кроме того, работа встроенной отладочной системы возможна только, если запрограммирован конфигурационный бит OCDEN и нет установленных бит защиты программы. В целях безопасности работа отладочной системы блокируется, если установлен какой-либо из бит защиты программы. В противном случае, отладочная система могла бы служить способом считывания защищенной разработчиком программы.
AVR Studio предоставляет разработчику полное управление выполнением программы AVR-микроконтроллера за счет использования встроенной в микроконтроллер отладочной системы, внутрисхемного эмулятора или автономного симулятора AVR-инструкций. AVR Studio поддерживает выполнение программ на Ассемблере, откомпилированных ассемблером корпорации Atmel, а также программ на Си, откомпилированных программами сторонних производителей.
AVR Studio работает под операционными системами Microsoft Windows 95/98/2000 и Windows NT. В данном документе представлены только общие черты программы AVR Studio, а полное описание представлено в "Руководство пользователя по AVR Studio" (AVR Studio User Guide).
Все необходимые команды могут быть выполнены в AVR Studio, как на уровне исходного кода, так и на дезассемблированном уровне. Пользователь может запустить программу на исполнение, выполнить программу пошагово как с переходом к обработке подпрограмм, так и без, выполнить шаг назад, выполнить программу до позиции курсора, остановить программу, а также сбросить текущий сеанс выполнения программы (эквивалентно сбросу микроконтроллера). Кроме того, пользователь может установить неограниченное число точек прерывания по адресу памяти программ (используя инструкцию BREAK) и до двух точек прерываний по обращению к адресам памяти данных, которые альтернативно могут образовывать маску адресов памяти данных для прерывания выполнения программы.
Специальные JTAG-инструкции встроенной отладочной системы
Встроенная отладочная система поддерживает специальные инструкции, которые известны только внутри корпорации ATMEL и сторонним производителям отладочных средств. Для справки ниже приведены коды операций.
PRIVATE0; $8 специальная JTAG-инструкция для обращения к встроенной отладочной системе.
PRIVATE1; $9 специальная JTAG-инструкция для обращения к встроенной отладочной системе.
PRIVATE2; $A специальная JTAG-инструкция для обращения к встроенной отладочной системе.
PRIVATE3; $B специальная JTAG-инструкция для обращения к встроенной отладочной системе.
Регистр встроенной отладочной системы – OCDR
Разряд | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Ст. разр. IDRD | - | - | - | - | - | - | Мл. разр. | OCDR | |
Чтение/запись | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | |
Программирование памяти
Биты защиты памяти программ и данных
ATmega128 содержит 6 битов защиты, которые можно оставить в незапрограммированном состоянии ("1") или же запрограммировать ("0") для активизации дополнительных функций, представленных в таблице 117. Стирание бит защиты (установка "1") может быть выполнена только командой стирание кристалла (Chip Erase).
Таблица 116. Байт с битами защиты
Биты защиты | Разряд | Описание | Исходное значение |
7 | - | 1 (незапрограммированный) | |
6 | - | 1 (незапрограммированный) | |
BLB12 | 5 | Бит защиты загрузочного сектора | 1 (незапрограммированный) |
BLB11 | 4 | Бит защиты загрузочного сектора | 1 (незапрограммированный) |
BLB02 | 3 | Бит защиты загрузочного сектора | 1 (незапрограммированный) |
BLB01 | 2 | Бит защиты загрузочного сектора | 1 (незапрограммированный) |
LB2 | 1 | Бит защиты | 1 (незапрограммированный) |
LB1 | 0 | Бит защиты | 1 (незапрограммированный) |
Прим.: "1" означает незапрограммированное состояние, а "0" - запрограммированное.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |


