Студопедия

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

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

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






Листинг 9 Фрагмент программы TEST_DE2_70_Media_Computer






/****************************************************************

* Процедура анализирует, имеются ли данные в буфере чтения JTAG порта.

* Если есть, то данные отправляются обратно в JTAG порт и дополнительно в

* COM-порт. Если новых данных нет, то выполняется проверка, имеются ли данные в буфере чтения com-порта. Если данные есть, то они отправляются обратно в com-порт и дополнительно в JTAG порт. А если нет, то происходит выход из процедуры.

********************************************************************/

 

.global UPDATE_UARTS

UPDATE_UARTS:

 

/* сохраняем регистры в стеке */

 

subi sp, sp, 28 /* резервируем область памяти в стеке*/

stw ra, 0(sp)

stw fp, 4(sp)

stw r15, 8(sp)

stw r16, 12(sp)

stw r17, 16(sp)

stw r18, 20(sp)

stw r19, 24(sp)

addi fp, sp, 28

 

movia r15, JTAG_UART_BASE /* помещаем в r15 адрес JTAG UART*/

movia r19, UART_BASE /* помещаем в r19 адрес com-порта*/

 

GET_CHAR:

ldwio r17, 0(r15) /* считываем слово из регистра данных JTAG UART*/

andi r18, r17, 0x8000 /* проверяем бит RVALID*/

beq r18, r0, GET_CHAR_UART /* если данных нет в буфере, то переходим на GET_CHAR_UART*/

andi r16, r17, 0x00ff /* выделяем байт данных из считанного из JTAG UART порта слова*/

 

 

PUT_CHAR:

ldwio r17, 4(r15) /* считываем слово из регистра управления JTAG UART*/

andhi r17, r17, 0xffff /* выделяем значение поля workspace*/

beq r17, r0, PUT_CHAR_UART /* если свободного места в буфере нет, то переходим на PUT_CHAR_UART*/

stwio r16, 0(r15) /* отправляем символ обратно в JTAG UART*/

 

PUT_CHAR_UART:

ldwio r17, 4(r19) /* считываем слово из регистра управления*/ com-порта*/

andhi r17, r17, 0xffff /* выделяем значение поля workspace*/

beq r17, r0, GET_CHAR_UART /* если свободного места нет в буфере, то переходим на GET_CHAR_UART*/

stwio r16, 0(r19) /* отправляем символ в com-порт*/

 

GET_CHAR_UART:

ldwio r17, 0(r19) /* считываем слово из регистра данных com-порта*/

andhi r18, r17, 0xFFFF /* выделяем значение поля RAVAIL*/

beq r18, r0, NO_CHAR * если новых данных нет, то переходим на NO_CHAR*/

andi r16, r17, 0x00ff /* выделяем байт данных из считанного из com-порта слова*/

 

 

ldwio r17, 4(r19) /* считываем слово из регистра управления com-порта*/

andhi r17, r17, 0xffff /* выделяем значение поля workspace*/

beq r17, r0, PUT_CHAR_JTAG /* если свободного места нет в буфере, то переходим на PUT_CHAR_JTAG*/

stwio r16, 0(r19) /* отправляем символ в com-порт*/

 

PUT_CHAR_JTAG:

ldwio r17, 4(r15) /* считываем слово из регистра управления JTAG UART*/

andhi r17, r17, 0xffff /* выделяем значение поля workspace*/

beq r17, r0, NO_CHAR /* если свободного места нет в буфере, то переходим на NO_CHAR*/

stwio r16, 0(r15) /* отправляем символ в JTAG UART*/

NO_CHAR:

 

/* извлекаем из стека регистры */

 

ldw ra, 0(sp)

ldw fp, 4(sp)

ldw r15, 8(sp)

ldw r16, 12(sp)

ldw r17, 16(sp)

ldw r18, 20(sp)

ldw r19, 24(sp)

addi sp, sp, 28

 

ret /* выполняем возврат из процедуры*/

Список литературы

 

1. Грушвицкий Р.И., Мурсаев А.X. Угрюмов Е.П. Проектирование систем на микросхемах с программируемой структурой. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2006. - 736с.

2. Тарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. – М.: Горячая линия – Телеком, 2005. -252с.

3. Ефремов Н.В. Введение в систему автоматизированного проектирования Quartus II. Учебное пособие. – М.: ГОУ ВПО МГУЛ, 2011.-147с.

4. DE2-70 Development and Education Board. Интернет ресурс.

https://www.altera.com/education/univ/materials/boards/de2-70/unv-de2-70-board.html? GSA_pos=1& WT.oss_r=1& WT.oss=de-270

5. Ефремов Н.В., Бородин А.А. Инструментальные средства проектирования и отладки цифровых систем на программируемом кристалле фирмы «Altera». Учебное пособие. – М.: ФГБОУ ВПО МГУЛ, 2012.- 123с.

6. Altera Monitor Program. Интернет ресурс.

ftp: //ftp.altera.com/up/pub/Altera_Material/11.0/Tutorials/Altera_Monitor_Program.pdf

7. Введение в SOPC Builder. Интернет ресурс. ftp: //ftp.altera.com/up/pub/Altera_Material/11.0/Tutorials/VHDL/Introduction_ to_the_Altera_SOPC_Builder.pdf

8. Введение в процессор NIOS II. Интернет ресурс.

ftp: //ftp.altera.com/up/pub/Altera_Material/11.0/Tutorials/Nios2_ introduction.pdf

9. Процессорная система «DE2-70 Media Computer». Интернет ресурс.

ftp: //ftp.altera.com/up/pub/Altera_Material/11.0/Examples/DE2-70/NiosII_Computer_Systems/DE2-70_Media_Computer.pdf

 

Содержание

Предисловие 4

Лабораторная работа №1 6

Исходные файлы лабораторной работы 6

Подготовка к лабораторной работе 6

Порядок выполнения лабораторной работы 7

Часть 1. Реализация процессорной системы на кристалле, загрузка и выполнение тестовой программы 7

Часть 2. Использование приложения АМР для работы с портами ввода вывода процессорной системы 10

Часть 3. Использование АМР для компиляции, загрузки и отладки программы 10

Часть 4. Вывод информации на LCD индикатор 12

Часть 5. Выполнение команд загрузки (load) и сохранения (store) в процессорной системе 13

Часть 6. Тестирование всех типов оперативной памяти, используемой в процессорной системе 14

Отчетные материалы 15

Приложение 15

Листинг 1. Исходный файл программы тестирования процессорной системы TEST_DE2_70_Media_Computer.s 16

Листинг 2 Исходный файл программы lab1_part3_DE.s 25

Листинг 3 Исходный файл программы LCD_DE2_70.s 26

Лабораторная работа №2 28

Исходные файлы лабораторной работы 29

Подготовка к лабораторной работе 29

Порядок выполнения лабораторной работы 29

Часть 1. Передача параметров через регистры 29

Часть 2. Передача параметров через стек 30

Часть 3. Использование вложенных процедур 31

Часть 4. Использование файлов с исходными данными в AMP 31

Индивидуальное задание 32

Отчетные материалы 33

Лабораторная работа №3 34

Исходные файлы лабораторной работы 34

Подготовка к лабораторной работе 34

Порядок выполнения лабораторной работы 35

Часть 1. Программно управляемый ввод с переключателей и вывод на светодиоды 35

Часть 2. Ввод информации с переключателей с опросом их готовности 36

Часть 3. Вывод информации на семисегментные индикаторы 36

Часть 4. Ввод информации с переключателей в режиме прерывания 37

Часть 5. Реализация приоритетных прерываний 37

Часть 6. Программное прерывание trapи невыполнимые команды 38

Отчетные материалы 38

Приложение 38

Листинг 4 Текст программы interrupt_example.s 39

Листинг 5 Текст программы exception_handler.s 40

Листинг 6 Текст программы interval_timer.s 41

Листинг 7 Текст программы pushbutton_ISR.s 43

Лабораторная работа №4 44

Исходные файлы лабораторной работы 44

Подготовка к лабораторной работе 44

Порядок выполнения лабораторной работы 45

Часть 1. Исследование работы интервального таймера (запуск, считывание текущего состояния и останов) 45

Часть 2. Использование интервального таймера в приложениях пользователя 47

Часть 3. Создание часов реального времени 47

Отчетные материалы 48

Лабораторная работа №5 48

Исходные файлы лабораторной работы 48

Подготовка к лабораторной работе 48

Порядок выполнения лабораторной работы 49

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

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

Часть 3. Ввод из UART JTAG в режиме прерывания 51

Часть 4. Ввод из JTAG UART в режиме прерывания с использованием вложенного прерывания от таймера 51

Часть 5. Использование COM-порта для сопряжения двух процессорных систем, реализованных на разных стендах 52

Часть 6. Использование инфракрасного порта для беспроводной передачи данных между процессорными системами 53

Отчетные материалы 53

Приложение 54

Листинг 8 Текст программы JTAG UART.s 54

Листинг 9 Фрагмент программы TEST_DE2_70_Media_Computer 56

Список литературы 58


Учебное издание

Н.В. Ефремов

 

 






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