Часть 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 первой части.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: