Скачиваний:
7
Добавлен:
29.12.2023
Размер:
121.68 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПБГУТ)

_________________________________________________________________________

Кафедра Радиосвязи и Вещания (РСиВ)

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

По дисциплине «Основы разработки систем на кристалле»

СОЗДАНИЕ ПРОЕКТА ПРОЦЕССОРНОЙ СИСТЕМЫ ДЛЯ РАБОТЫ С ПОРТАМИ MIO И EMIO

Выполнили

студенты группы РТ-XX

Проверил:

Фёдоров Андрей Сергеевич __________

Санкт-Петербург

2023

1. Цель работы

Создание проекта с использованием IP-интегратора. Настройка аппаратной процессорной системы на работу MIO (Multiplexed I/O) и EMIO (Extended Multiplexed I/O). Проверка проекта на отладочной плате ZedBoad.

2. Чертеж блок-схемы проекта с отметками о назначении всех блоков.

На схеме изображён блок сконфигурированного процессора. Подключены внешние интерфейсы: оперативная память (DDR), интерфейс для соединения с аппаратными периферийными устройствами, например, через UART, Ethernet, USB, интерфейс общего назначения вводов / выводов

3. Блок-схема алгоритма работы программы индивидуального задания.

4. Листинг исходного кода из индивидуального задания с поясняющими комментариями каждой строки.

#include "xgpiops.h"        // библиотека для конфигурации вводов / выводов

#include "sleep.h"          // библиотека для использования задержки

#define DELAY 2000000       // объявление директив

                           

#define LD0 54

#define LD3 57

#define LD9 7

#define SET 1

#define RESET 0

int main(void)

{

    static XGpioPs psGpioInstancePtr;   // объявление структуры

    XGpioPs_Config* GpioConfigPtr; // указатель на структуру XGpioPs_Config

    int xStatus; // статус инициализации

    GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID); // получение адреса конфигурации

    xStatus = XGpioPs_CfgInitialize(&psGpioInstancePtr, GpioConfigPtr, GpioConfigPtr->BaseAddr); // инициализация конфигурации

    if (XST_SUCCESS != xStatus)

        printf("PS GPIO INIT FAILED\n\r");

    // Конфигурация пинов как выходных EMIO

    XGpioPs_SetDirectionPin(&psGpioInstancePtr, LD0, SET);

    XGpioPs_SetDirectionPin(&psGpioInstancePtr, LD3, SET);

    // Включение пинов EMIO

    XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, LD0, SET);

    XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, LD3, SET);

    // Включение и конфигурация пинов MIO

    XGpioPs_SetDirectionPin(&psGpioInstancePtr, LD9, SET);

    XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, LD9, SET);

    while(1)

    {

        /*В теле цикла происходит периодическое

        включение и выключение пинов с периодом 1 секунда*/

        XGpioPs_WritePin(&psGpioInstancePtr, LD0, SET);

        usleep(DELAY);

        XGpioPs_WritePin(&psGpioInstancePtr, LD0, RESET);

        usleep(DELAY);

        XGpioPs_WritePin(&psGpioInstancePtr, LD9, SET);

        usleep(DELAY);

        XGpioPs_WritePin(&psGpioInstancePtr, LD9, RESET);

        usleep(DELAY);

        XGpioPs_WritePin(&psGpioInstancePtr, LD3, SET);

        usleep(DELAY);

        XGpioPs_WritePin(&psGpioInstancePtr, LD3, RESET);

        usleep(DELAY);

    }

    return 0;

}

5. Заметки из протокола.

Соседние файлы в папке ЛР