/* SSSInitialTask will initialize the NicheStack * TCP/IP Stack and then initialize the rest of the Simple Socket Server example * RTOS structures and tasks. */ void SSSInitialTask(void *task_data) { INT8U error_code; /* * Initialize Altera NicheStack TCP/IP Stack - Nios II Edition specific code. * NicheStack is initialized from a task, so that RTOS will have started, and * I/O drivers are available. Two tasks are created: * "Inet main" task with priority 2 * "clock tick" task with priority 3 */ 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); /* Now that the stack is running, perform the application initialization steps */ /* Application Specific Task Launching Code Block Begin */ printf("\nSimple Socket Server starting up\n"); /* Create the main simple socket server task. */ TK_NEWTASK(&ssstask); /*create os data structures */ SSSCreateOSDataStructs(); /* create the other tasks */ SSSCreateTasks(); /* Application Specific Task Launching Code Block End */ /*This task is deleted because there is no need for it to run again */ error_code = OSTaskDel(OS_PRIO_SELF); alt_uCOSIIErrorHandler(error_code, 0); while (1); /* Correct Program Flow should never get here */ }
void WSInitialTask(void* pdata) { INT8U error_code = OS_NO_ERR; /* * Initialize Altera NicheStack TCP/IP Stack - Nios II Edition specific code. * NicheStack is initialized from a task, so that RTOS will have started, and * I/O drivers are available. Two tasks are created: * "Inet main" task with priority 2 * "clock tick" task with priority 3 */ alt_iniche_init(); /* Start the Iniche-specific network tasks and initialize the network * devices. */ netmain(); /* Wait for the network stack to be ready before proceeding. */ while (!iniche_net_ready) TK_SLEEP(1); /* Create the main network task. In this case, a web server. */ TK_NEWTASK(&wstask); /* Application specific code starts here... */ /*Create Tasks*/ WSCreateTasks(); printf("\nWeb Server starting up\n"); /* Application specific code ends here. */ /* Display the IP Address on the LCD Display. */ #ifdef LCD_NAME lcd_ip_addr(); #endif /*This task deletes itself, since there's no reason to keep it around, once *it's complete. */ error_code = OSTaskDel(OS_PRIO_SELF); alt_uCOSIIErrorHandler(error_code, 0); while(1); /*Correct Program Flow should not reach here.*/ }
int netmain(void) { int i; int e; iniche_net_ready = FALSE; e = prep_modules(); /* Create the threads for net, timer, and apps */ for (i = 0; i < num_net_tasks; i++) { e = TK_NEWTASK(&nettasks[i]); if (e != 0) { dprintf("task create error\n"); panic("netmain"); return -1; /* compiler warnings */ } } e = create_apptasks(); if (e != 0) { dprintf("task create error\n"); panic("netmain"); return -1; /* compiler warnings */ } uart_yield = 1; #ifndef NO_INET_STACK #ifdef MAIN_TASK_IS_NET tk_netmain(TK_NETMAINPARM); panic("net task return"); return -1; #else return 0; #endif #endif /* NO_INET_STACK */ }
/* SSSInitialTask will initialize the NicheStack * TCP/IP Stack and then initialize the rest of the Nios II Simple Socket Server example * RTOS structures and tasks. */ void SSSInitialTask(void *task_data) { INT8U error_code; system_dhcp_hostname = "NEEK_1"; wait_on_phy(); /* * Register new DHCP "IP attained" callback function. * If DHCP is acquired, ws_ipset will be called instead of dhc_main_ipset(). */ #ifdef DHCP_CLIENT dhc_set_callback( 0, ws_ipset ); #endif /* * Initialize Altera NicheStack TCP/IP Stack - Nios II Edition specific code. * NicheStack is initialized from a task, so that RTOS will have started, and * I/O drivers are available. Two tasks are created: * "Inet main" task with priority 2 * "clock tick" task with priority 3 */ alt_iniche_init(); /* Start the Iniche-specific network tasks and initialize the network * devices. */ netmain(); /* Wait for the network stack to be ready before proceeding. */ while (!iniche_net_ready) { TK_SLEEP(1); /* * Allow other tasks to run, while waiting for network. */ OSTimeDlyHMSM(0, 0, 3, 0); } /* * Nichestack is ready. */ /* Application Specific Task Launching Code Block Begin */ printf("\nNios II Simple Socket Server starting up.\n"); /* Create the phy monitoring task. */ TK_NEWTASK(&sssphytask); /* Create the main Nios II Simple socket server task. */ //TK_NEWTASK(&ssstask); TK_NEWTASK(&ssspenetask); /*create os data structures */ SSSCreateOSDataStructs(); /* create the other tasks */ SSSCreateTasks(); /* Application Specific Task Launching Code Block End */ /*This task is deleted because there is no need for it to run again */ error_code = OSTaskDel(OS_PRIO_SELF); alt_uCOSIIErrorHandler(error_code, 0); while (1); /* Correct Program Flow should never get here */ }