Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Порядок выполнения лабораторной работы. Часть 1. Запись в UART JTAG (вывод информации)






Часть 1. Запись в UART JTAG (вывод информации)

1. Напишите программу, которая записывает символ z в порт UART JTAG. Предусмотрите в программе анализ поля WSPACE в регистре управления UART, отражающего наличие свободного места в буфере FIFO для записываемых символов. Реализуйте выход из программы, если свободного места нет.

2. Отладьте программу. По содержимому поля WSPACE определите размер буфера FIFO. Используйте для этого окно с содержимым регистров AMP. Измените символ z на другой символ.

3. Модифицируйте программу из предыдущего пункта таким образом, чтобы символы выводились многократно. Реализуйте программную задержку в цикле вывода. Подберите задержку таким образом, чтобы происходило следующее.

4. Программа завершалась по переполнению буфера FIFO, и при этом выводилось в терминальное окно AMP минимальное количество символов. Подсчитайте количество выведенных символов. Сравните со значением, полученным в пункте 2.

5. Буфер FIFO никогда не переполняется, и программа реализует бесконечный цикл.

6. Буфер FIFO успевает вывести некоторое количество символов до того, как он переполнится.

Запишите в отчет подобранные задержки.

7. Напишите программу, которая выводит в терминальное окно AMP некоторое сообщение. Сообщение поместите в сегменте данных программы. Для этого используйте директиву.ASCIIZ ассемблера. Программа должна анализировать выводимый байт, и если он равен нулю, то вывод должен прекращаться. Оформите эту программу в виде процедуры, которая в последующем может быть использована для вывода из NIOS II процессорной системы различных сообщений. Параметром, передаваемым этой процедуре, является адрес текстовой строки в сегменте данных. В качестве тестового примера выведите свою фамилию, имя и отчество.

 

Часть 2. Чтение из JTAG UART (ввод информации)

1. Напишите подпрограмму, которая выполняет чтение из порта UART JTAG. Подпрограмма должна анализировать бит RVALID в регистре данных UART. Если этот бит равен 1, считанные данные присутствовали в буфере FIFO и они достоверны. В противном случае, данных в буфере нет, и подпрограмма должна ожидать их появления. Принятый из UART JTAG символ, основная программа должна отобразить на светодиодах и двух 7-сегментных индикаторах, записать обратно в JTAG и так далее в цикле. Отладьте подпрограмму.

2. С помощью AMP откомпилируйте программу из предыдущего пункта и загрузите в память. Поставьте контрольную точку в программе после приема первого символа из UART JTAG. Проанализируйте поле RAVAIL. Запишите в отчет. Обратите внимание! Для анализа поля RAVAIL потребуется установить галочку Query all devices и нажать кнопку Refresh. Учтите, что при этом произойдет чтение регистра данных UART JTAG и, следовательно, удаление символа из вершины буфера FIFO и уменьшение поля RAVAIL на 1. Повторите эксперимент, но предварительно напечатайте в терминальном окне AMP несколько символов с клавиатуры. Проанализируйте поле RAVAIL. Уберите галочку Query all devices, уберите контрольную точку и продолжите выполнение программы. Сравните количество выведенных символов в терминальном окне AMP с содержимым поля RAVAIL. Повторите эксперимент. Экспериментально определите размер буфера FIFO для читаемых данных.

3. Модифицируйте программу таким образом, чтобы коды печатаемых символов отображались на светодиодах. Составьте таблицу кодов ASCII для десяти цифр, нескольких букв вашей фамилии. Получите код символа @. В этом пункте было бы полезно использовать вывод на два 7-сегментных индикатора. Получите коды ASCII для одной и той же клавиши прописными и заглавными буквами, в английской и русской раскладке.

4. Модифицируйте подпрограмму чтения из порта UART JTAG таким образом, чтобы ASCII-коды выводимых символов записывались в память побайтно. Ввод должен завершаться при получении специального символа, например @. В конец строки должен быть добавлен нулевой байт. Подпрограмма в последующем будет полезна для реализации ввода информации в NIOS II процессорную систему с клавиатуры инструментального компьютера. Отправьте сохраненную строку в UART JTAG порт, используя подпрограмму, написанную в пункте 7 первой части.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.