Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: обмен данными по pciE для ml605 xilinx
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Alexey_Rostov
здравствуйте! Подскажите как правильно организовать обмен по pcie.
В XPS собираю систему: microblaze, ddr, cdma, axi_pcie, порты вывода на led'ы.
Нажмите для просмотра прикрепленного файла
В настройках pcie ядра режим определил как end point, задал только BAR0 и его размер 64 кбайт 32 bit адресного пространства. На начальном этапе работаю без DMA, пытаюсь записать число микроблейзом в регистр BAR0
В SDK программа выполняет: мигание светодиодом и запись числа в первую ячейку BAR0 (для записи использую функцию вывода данных на периферию Xil_Out32).

Код
#include "xparameters.h"
#include "xil_io.h"
/************************** Function Prototypes *****************************/
int leds (void);

#define delay 250000

void main(void)
{

   while(1)
   {

     leds();
    Xil_Out32(XPAR_PCI_EXPRESS_AXIBAR_0, 0x01234567);


   }
}


int leds (void)
{

int i;

       for(i=0; i<delay; i++ );
       Xil_Out8(XPAR_LEDS_8BITS_BASEADDR, 0x01);
       for(i=0; i<delay; i++ );
       Xil_Out8(XPAR_LEDS_8BITS_BASEADDR, 0x00);
return 0;

}


Делаю след образом (плата в разъеме pcie):
-- заливаю .bit файл.
-- перезагружаю компьютер
-- в диспетчере наблюдаю pcie контроллер памяти
-- с помощью PcieTree вижу свою плату с заданными VID, размером BAR0 и его начальным адресом (в конфиг регистре) в оперативной памяти и т.д.
-- открываю содержимое BAR0
-- загружаю .elf файл содержимое в ячейках BAR0 изменилось на FFFFFFFF, светодиод моргнул только один раз,
при обновлении PcieTree начальный адрес BAR0 на 0000.
Нажмите для просмотра прикрепленного файла

Что делаю не так?


Alexey_Rostov
Все разобрался! Собрал систему без microblaze: pcie + ddr + cdma + bram + leds_gpio
В настройках pcie выделил 3 BAR пространства. Отмаппировал cdma и leds_gpio на BAR1 и BAR2, ddr на BAR0. Залил во flash. Перезагрузил ПК
Далее программой Pcietree открываю например BAR2 и пишу в первый регистр число -- загораются соответствующие светодиоды.
Аналогично можно управлять cdma для считывания\записи потока данных в BAR0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.