Aleksei_Rostov 0 4 ноября, 2014 Опубликовано 4 ноября, 2014 · Жалоба здравствуйте! Подскажите как правильно организовать обмен по 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. Что делаю не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 5 ноября, 2014 Опубликовано 5 ноября, 2014 (изменено) · Жалоба Все разобрался! Собрал систему без microblaze: pcie + ddr + cdma + bram + leds_gpio В настройках pcie выделил 3 BAR пространства. Отмаппировал cdma и leds_gpio на BAR1 и BAR2, ddr на BAR0. Залил во flash. Перезагрузил ПК Далее программой Pcietree открываю например BAR2 и пишу в первый регистр число -- загораются соответствующие светодиоды. Аналогично можно управлять cdma для считывания\записи потока данных в BAR0 Изменено 5 ноября, 2014 пользователем farbius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться