Высококлассные средства разработки.Продолжение
Интерфейс JTAG и блок отладки работают асинхронно с ядром MAXQ2000. Связь по порту JTAG не требует той же тактовой частоты, с которой работает MAXQ2000. Частота TCK не должна превышать 1/8 системной тактовой частоты MAXQ2000.
Установки точек прерывания можно записать и прочитать через блок отладки в то время, как MAXQ2000 выполняет код. Этот режим известен как фоновый, и в нем блок отладки работает независимо от ядра ЦПУ.
При выполнении других операций, таких, как запись в и чтение из памяти и регистров, блок отладки управляет ядром MAXQ2000 и переключает его на выполнение одной из сервисных программ отладки, хранящихся в ПЗУ. Этот режим называется режимом отладки, и в нем блок отладки
прерывает нормальное выполнение программ. В этих случаях работа пользовательской программы временно прерывается и возобновляется только после выполнения функции отладки, точно так же, как это происходит при обработке прерываний.
Поскольку сам JTAG TAP-порт не используется для прикладных программ, выводы, присвоенные порту JTAG, могут использоваться этими программами. Все дополнительные подпрограммы, требующиеся для функций отладки, размещаются в ПЗУ, поэтому единственные системные ресурсы, потребляемые функциями отладки — небольшой объем ОЗУ и один уровень программного стека (используемый для хранения адреса возврата при вызове прграммы отладки). Старшие 19 байт ОЗУ (адреса с 0х07ED по 0x07FF) зарезервированы для использования сервисными программами отладки. Если внутрисхемная отладка не планируется, эти ячейки ОЗУ доступны для использования прикладными программами.
Доступ к интегрированной программной флеш-памяти через JTAG
JTAG TAP-порт также используется для дополнительной функции загрузчика, которая доступна даже в том случае, когда функции отладки не используются. Установив три конфигурационных бита через JTAG TAP интерфейс и затем отключив сигнал reset, можно передать управление встроенным программам загрузки, размещенным в ПЗУ. Биты конфигурации, которые управляют доступом к загрузчику — следующие:
• SPE: System Program Enable Bit (Разрешить запись в программную память) (ICDF.1). Если этот бит установлен в 1, MAXQ2000 выполняет программу загрузчика в ПЗУ сразу после отключения сигнала reset.
• PSS[1:0]: Programming Source Select (Выбор источника программирования) (ICDF.3-2). Эти биты определяют какой порт используется для связи с загрузчиком: JTAG (PSS[1:0]==00b) или последовательный 0 UART
(PSS[1:0]==01b)
Когда эти биты установлены и MAXQ2000 снят с reset,
загрузчик начинает обмен данными с хост-системой по выбранному порту (JTAG или последовательный 0 UART). В любом случае используется один и то же протокол, выполняющий следующие функции:
• Считывает идентификационный номер MAXQ2000 (идентифицирует версию ПЗУ)
• Сообщает объем памяти программ и памяти данных
• Осуществляет чтение, запись, проверку и вычисление контрольной суммы для интегрированной программной флеш-памяти
• Осуществляет чтение, запись, проверку и вычисление контрольной суммы для ОЗУ
• Проверка пароля (для получения доступа к командам записи/чтения программной памяти).
Хотя загрузчик и может работать через последовательный 0 UART порт вместо JTAG, интерфейс JTAG необходим для переключения загрузчика в режим последовательной передачи.
Однако прикладная программа также может перевести загрузчик в режим последо-
вательной передачи, нужным образом установив биты SPE и PSS, а затем выполнив reset
MAXQ2000 (позволив сработать сторожевому таймеру или с помощью внешних аппаратных средств).
Метод активизации загрузчика (например, сигнал на вывод порта) определяется прикладной программой.
Защита функций отладки и загрузчика с помощью пароля
Схема защиты по паролю ограничивает доступ к функциям отладки и загрузчика MAXQ2000.
Хост-система должна сообщить пароль, чтобы получить доступ к любой функции, которая считывает или изменяет содержимое памяти или системных и периферийных регистров.
Длина пароля составляет 16 слов или 32 байта. Оригинал пароля хранится во внутренней флеш-памяти по адресам от 0x0010 до 0x001F. Эти значения можно включить в прикладную программу в виде статического массива, или это могут быть просто значения командных кодов, хранящихся по этим адресам. В любом случае, пароль записывается автоматически при загрузке прикладной программы. Если прикладная программа не загружена, то пароль формируется по умолчанию и все его слова равны 0хFFFF.
Даже если пароль неизвестен, содержимое внутренней флеш-памяти MAXQ2000 всегда можно стереть с помощью загрузчика. Этот метод эффективно стирает пароль (приводя все слова к виду 0хFFFF) и позволяет работать остальным операциям программирования и отладки.
Защита с помощью пароля гарантирует, что существующий код нельзя считать с MAXQ2000, не проверив предварительно соответствие значения 32-байтного пароля.
|