Beby 4 14 августа, 2008 Опубликовано 14 августа, 2008 · Жалоба можно-то можно... только жутко дорого. И цена ошибки очень высока... Заранее извиняюсь за offtopic. С дороговизной БМК и ценой ошибки полностью согласен. Но знаю прецеденты сборки схем на БМК, содержащих одновременно как многовходовые операционные усилители (6-8 входов и кучи обратных связей, позволяющих значительно уменьшить влияние деградации кристалла – например, от ионизирующего излучения), так и простенького цифрового интерфейсика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nuts 0 14 августа, 2008 Опубликовано 14 августа, 2008 (изменено) · Жалоба подскажи подробнее, пожалуйста, как ты генерировал ядро для езернета - тоже интересует данный вопрос, только пишу езернет на Спартане-3Е Ehternet IP ядро подключил с помощью визарда, в EDK 9.2 уже готовое есть, но без лицензии. С помощью визарда в EDK 9.2 прикрутил на отладочную плату, необходимые ядра. ОС установил Xilkernel , подключил библиотеки xilmfs и lwip. Затем добавил следующий application, для отправки UDP пакетов, вот кому интересно: #include <stdio.h> #include "xenv_standalone.h" #include "xparameters.h" #include "netif/xadapter.h" #include <string.h> #include "xmk.h" #include "lwip/inet.h" #include "lwip/sockets.h" #include "lwipopts.h" #ifdef XPAR_ETHERNET_MAC_BASEADDR #define EMAC_BASEADDR XPAR_ETHERNET_MAC_BASEADDR #elif XPAR_LLTEMAC_0_BASEADDR #define EMAC_BASEADDR XPAR_LLTEMAC_0_BASEADDR //#else //#error #endif /* list of applications to be included */ #define APP_TXPERF void print_ip(char *msg, struct ip_addr *ip) { print(msg); xil_printf("%d.%d.%d.%d\n\r", ip4_addr1(ip), ip4_addr2(ip), ip4_addr3(ip), ip4_addr4(ip)); } void print_ip_settings(struct ip_addr *ip, struct ip_addr *mask, struct ip_addr *gw) { print_ip("Board IP: ", ip); print_ip("Netmask : ", mask); print_ip("Gateway : ", gw); } int main() { xilkernel_main(); } int tx_application_thread_my() { int sock_my,i; struct sockaddr_in address; char buf[50000]; /* initialize file system layer */ // platform_init_fs(); /* initialize devices */ //platform_init_gpios(); for(i=0;i<=50000;i++) buf[i]='r'; if ((sock_my = lwip_socket(AF_INET, SOCK_DGRAM, 0)) < 0) return; address.sin_family = AF_INET; address.sin_port = htons(3425); address.sin_addr.s_addr = inet_addr("192.168.0.215"); if (lwip_bind(sock_my, (struct sockaddr *)&address, sizeof (address)) < 0) return; while(1) { lwip_sendto(sock_my, buf, sizeof(buf), 0,(struct sockaddr *)&address, sizeof(address)); } lwip_close(sock_my); } //void tx_application_thread_my(); void tx_application_thread(); //void rx_application_thread(); struct netif server_netif; char buf_sdram[16*1024*1024]; int network_thread() { struct netif *netif; struct ip_addr ipaddr, netmask, gw; /* the mac address of the board. this should be unique per board */ unsigned char mac_ethernet_address[] = { 0x00, 0x0a, 0x35, 0x00, 0x01, 0x02 }; netif = &server_netif; /* initliaze IP addresses to be used */ IP4_ADDR(&ipaddr, 192, 168, 0, 51); IP4_ADDR(&netmask, 255, 255, 255, 0); IP4_ADDR(&gw, 192, 168, 0, 215); /* print out IP settings of the board */ print("\n\r\n\r"); print_ip_settings(&ipaddr, &netmask, &gw); if (!xemac_add(netif, &ipaddr, &netmask, &gw, mac_ethernet_address, EMAC_BASEADDR)) { xil_printf("Error adding N/W interface\n\r"); return -1; } netif_set_default(netif); /* specify that the network if is up */ netif_set_up(netif); /* start packet receive thread - required for lwIP operation */ sys_thread_new(xemacif_input_thread, netif, DEFAULT_THREAD_PRIO); /* now we can start application threads */ #ifdef APP_TXPERF /* start txperf thread */ sys_thread_new(tx_application_thread_my, 0, DEFAULT_THREAD_PRIO); #endif return 0; } int main_thread() { /* initialize lwIP before calling sys_thread_new */ lwip_init(); /* any thread using lwIP should be created using sys_thread_new */ sys_thread_new(network_thread, NULL, DEFAULT_THREAD_PRIO); return 0; } :05: Изменено 14 августа, 2008 пользователем Nuts Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DiWhite 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Начинаю работать с ethernet на Spartsn 6. Сделал как описано, но SDK выдает ошибки Подскажите, что не так? Работаю в Xilinx 12.2. Ниже прилепил mhs и mss файлы проекта. Archive.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться