возник еще один вопрос при разборе стэка TCP/IP под NIOS2 (nichestack)
у меня в модуле будет реализовано 2 Ethernet, по коду, кажется, у меня все нормально проинициализируется(т.е. под каждый выделится стэк, проинициализированы будут для каждого dma каналы, mac и ip адреса...)
Я создал 2 задачи, каждая из которых будет работать с каждым Ethernet... обмен осуществляю через сокеты...
я по коду примера и по описанию не увидел, где и как конкретный сокет(может и задача) привязана к конкретному Ethernet...
вот так провожу инициализацию
CODE
alt_iniche_init();
netmain();
/* Wait for the network stack to be ready before proceeding.
* iniche_net_ready indicates that TCP/IP stack is ready, and IP address is obtained.
*/
while (!iniche_net_ready)
TK_SLEEP(1);
netmain();
/* Wait for the network stack to be ready before proceeding.
* iniche_net_ready indicates that TCP/IP stack is ready, and IP address is obtained.
*/
while (!iniche_net_ready)
TK_SLEEP(1);
вот так выделяю задачи под каждый ethernet
CODE
/запуск задачи для работы по 1му Ethernet
TK_OBJECT(to_ssstask_e1);
TK_ENTRY(Socket_E1);
struct inet_taskinfo ssstask_e1 = {
&to_ssstask_e1,
"socket_E1",
Socket_E1,
4,
APP_STACK_SIZE,
};
//запуск задачи для работы по 2му Ethernet
TK_OBJECT(to_ssstask_e2);
TK_ENTRY(Socket_E2);
struct inet_taskinfo ssstask_e2 = {
&to_ssstask_e2,
"socket_E2",
Socket_E2,
5,
APP_STACK_SIZE,
};
TK_OBJECT(to_ssstask_e1);
TK_ENTRY(Socket_E1);
struct inet_taskinfo ssstask_e1 = {
&to_ssstask_e1,
"socket_E1",
Socket_E1,
4,
APP_STACK_SIZE,
};
//запуск задачи для работы по 2му Ethernet
TK_OBJECT(to_ssstask_e2);
TK_ENTRY(Socket_E2);
struct inet_taskinfo ssstask_e2 = {
&to_ssstask_e2,
"socket_E2",
Socket_E2,
5,
APP_STACK_SIZE,
};
Так как связывается сокет(или задача) с конкретным ethernet? надо ли мне указывать что-то явно в задаче или при работе с сокетами, чтобы проц знал, куда посылает и откуда принимает данные?