|
|
@@ -25,10 +25,11 @@
|
|
|
#include "command.h"
|
|
|
|
|
|
|
|
|
-#define REQUESTED_MEMORY_SIZE 0x1000
|
|
|
-#define BUFF_SIZE 2048
|
|
|
-#define SERVER_PORT 5025
|
|
|
-#define BACKLOG 10
|
|
|
+#define REQUESTED_MEMORY_SIZE 0x1000
|
|
|
+#define REQUESTED_MEMORY_SIZE_DMA 0x10000
|
|
|
+#define BUFF_SIZE 2048
|
|
|
+#define SERVER_PORT 5025
|
|
|
+#define BACKLOG 10
|
|
|
|
|
|
volatile int conn_fd = 0;
|
|
|
volatile int pci_fd = 0;
|
|
|
@@ -58,6 +59,7 @@ void error(const char *msg)
|
|
|
}
|
|
|
|
|
|
munmap(bar1, REQUESTED_MEMORY_SIZE);
|
|
|
+ munmap(bar0,REQUESTED_MEMORY_SIZE_DMA);
|
|
|
exit(1);
|
|
|
}
|
|
|
|
|
|
@@ -84,6 +86,7 @@ void handle_close_signal(int signal)
|
|
|
close(dma_fd);
|
|
|
}
|
|
|
munmap(bar1, REQUESTED_MEMORY_SIZE);
|
|
|
+ munmap(bar0,REQUESTED_MEMORY_SIZE_DMA);
|
|
|
exit(0);
|
|
|
}
|
|
|
}
|
|
|
@@ -133,6 +136,13 @@ int main(int argc, char *argv[])
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+ bar0 = mmap(NULL, REQUESTED_MEMORY_SIZE_DMA, PROT_READ | PROT_WRITE, MAP_SHARED, dma_fd, 0);
|
|
|
+ if (bar0 == MAP_FAILED) {
|
|
|
+ perror("mmap dma");
|
|
|
+ close(dma_fd);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
pci_bar_1 = (reg_addr_pci*)bar1;
|
|
|
|
|
|
lmk04821_a_init(pci_bar_1);
|
|
|
@@ -149,7 +159,6 @@ int main(int argc, char *argv[])
|
|
|
lmx2594_init(pci_bar_1);
|
|
|
|
|
|
usleep(1000);
|
|
|
-
|
|
|
char *user_buffer = (char *) malloc(BUFF_SIZE);
|
|
|
char *user_buffer_read = (char *) malloc(BUFF_SIZE);
|
|
|
|
|
|
@@ -179,7 +188,11 @@ int main(int argc, char *argv[])
|
|
|
fprintf(stderr, "Data match\n");
|
|
|
}
|
|
|
|
|
|
+ free(user_buffer);
|
|
|
+ free(user_buffer_read);
|
|
|
+
|
|
|
|
|
|
+ usleep(1000);
|
|
|
// Установка режима SPI
|
|
|
uint32_t cfg_reg = get_cfg_reg();
|
|
|
SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_4MOSI);
|
|
|
@@ -187,6 +200,10 @@ int main(int argc, char *argv[])
|
|
|
pci_bar_1->cfg_reg_addr = cfg_reg;
|
|
|
set_cfg_reg(cfg_reg);
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
// Установка обработчика сигналов
|
|
|
signal(SIGINT, handle_close_signal);
|
|
|
|