/** * \brief Start the network stack */ static void start_network(void) { #if NETSTACK_CONF_WITH_IPV6 #ifndef CONTIKI_WAIT_FOR_MAC memcpy(&uip_lladdr.addr, serial_id, sizeof(uip_lladdr.addr)); #endif process_start(&tcpip_process,NULL); #ifdef __CYGWIN__ process_start(&wpcap_process, NULL); #endif printf("Tentative link-local IPv6 address "); { uip_ds6_addr_t *lladdr; int i; lladdr = uip_ds6_get_link_local(-1); for(i = 0; i < 7; ++i) { printf("%02x%02x:", lladdr->ipaddr.u8[i * 2], lladdr->ipaddr.u8[i * 2 + 1]); } /* make it hardcoded... */ lladdr->state = ADDR_AUTOCONF; printf("%02x%02x\n", lladdr->ipaddr.u8[14], lladdr->ipaddr.u8[15]); } #elif NETSTACK_CONF_WITH_IPV4 process_start(&tcpip_process, NULL); #endif autostart_start(autostart_processes); }
/*---------------------------------------------------------------------------*/ static void start_process_run_loop(void *data) { /* Yield once during bootup */ simProcessRunValue = 1; cooja_mt_yield(); /* Initialize random generator */ random_init(0); /* Start process handler */ process_init(); /* Start Contiki processes */ procinit_init(); /* Print startup information */ printf(CONTIKI_VERSION_STRING " started. "); if(node_id > 0) { printf("Node id is set to %u.\n", node_id); } else { printf("Node id is not set.\n"); } /* Initialize communication stack */ init_net(); /* Start serial process */ serial_line_init(); /* Start autostart processes (defined in Contiki application) */ print_processes(autostart_processes); autostart_start(autostart_processes); while(1) { /* Always pretend we have processes left while inside process_run() */ simProcessRunValue = 1; if (simDoReceiverCallback) { simDoReceiverCallback = 0; radio_call_receiver(); } simProcessRunValue = process_run(); while (simProcessRunValue-- > 0) { process_run(); } simProcessRunValue = process_nevents(); // Check if we must stay awake if (simDontFallAsleep) { simDontFallAsleep=0; simProcessRunValue = 1; } /* Yield thread when one process_run has completed */ cooja_mt_yield(); } }
int main(void) { cpu_init(); /* Initialize UART connected to Galileo Gen2 FTDI header */ quarkX1000_uart_init(QUARK_X1000_UART_1); clock_init(); rtimer_init(); printf("Starting Contiki\n"); ENABLE_IRQ(); process_init(); procinit_init(); ctimer_init(); autostart_start(autostart_processes); eth_init(); while(1) { process_run(); } return 0; }
/*---------------------------------------------------------------------------*/ static void start_autostart_processes() { #if !PROCESS_CONF_NO_PROCESS_NAMES print_processes(autostart_processes); #endif /* !PROCESS_CONF_NO_PROCESS_NAMES */ autostart_start(autostart_processes); }
/*---------------------------------------------------------------------------*/ int main(void) { printf("Starting Contiki\n"); process_init(); ctimer_init(); netstack_init(); procinit_init(); serial_line_init(); autostart_start(autostart_processes); /* Make standard output unbuffered. */ setvbuf(stdout, (char *)NULL, _IONBF, 0); while(1) { fd_set fds; int n; struct timeval tv; clock_time_t next_event; n = process_run(); next_event = etimer_next_expiration_time()-clock_time(); #if DEBUG_SLEEP if(n > 0) { printf("%d events pending\n",n); } else { printf("next event: T-%.03f\n",(double)next_event/(double)CLOCK_SECOND); } #endif if(next_event>CLOCK_SECOND*2) next_event = CLOCK_SECOND*2; tv.tv_sec = n?0:next_event/CLOCK_SECOND; tv.tv_usec = n?0:next_event%1000*1000; FD_ZERO(&fds); FD_SET(STDIN_FILENO, &fds); select(1, &fds, NULL, NULL, &tv); if(FD_ISSET(STDIN_FILENO, &fds)) { char c; if(read(STDIN_FILENO, &c, 1) > 0) { serial_line_input_byte(c); } } etimer_request_poll(); } return 0; }
void runReceivedProgram() { printf("runReceivedProgram\n"); printf("originator: %u\n", filenameOriginatorRecv.originator); printf("filename: %s\n", filename_download); fd = cfs_open(filename_download, CFS_READ | CFS_WRITE); if(fd < 0) { printf("exec: could not open %s\n", filename_download); } else { int ret; char *print, *symbol; ret = elfloader_load(fd); cfs_close(fd); symbol = ""; switch(ret) { case ELFLOADER_OK: print = "OK"; break; case ELFLOADER_BAD_ELF_HEADER: print = "Bad ELF header"; break; case ELFLOADER_NO_SYMTAB: print = "No symbol table"; break; case ELFLOADER_NO_STRTAB: print = "No string table"; break; case ELFLOADER_NO_TEXT: print = "No text segment"; break; case ELFLOADER_SYMBOL_NOT_FOUND: print = "Symbol not found: "; break; case ELFLOADER_SEGMENT_NOT_FOUND: print = "Segment not found: "; break; case ELFLOADER_NO_STARTPOINT: print = "No starting point"; break; default: print = "Unknown return code from the ELF loader (internal bug)"; break; } if(ret == ELFLOADER_OK) { int i; for(i = 0; elfloader_autostart_processes[i] != NULL; ++i) { printf("exec: starting process %s\n", elfloader_autostart_processes[i]->name); } autostart_start(elfloader_autostart_processes); } } }
int main(void) { leds_init(); leds_on(LEDS_RED); /* Initialize USART */ init_usart(); /* Clock */ clock_init(); leds_on(LEDS_GREEN); ds2401_init(); random_init(0); rtimer_init(); /* Process subsystem */ process_init(); process_start(&etimer_process, NULL); ctimer_init(); leds_on(LEDS_YELLOW); init_net(); node_id_restore(); printf_P(PSTR(CONTIKI_VERSION_STRING " started. Node id %u, using %s.\n"), node_id, rime_mac->name); printf_P(PSTR("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n"), ds2401_id[0], ds2401_id[1], ds2401_id[2], ds2401_id[3], ds2401_id[4], ds2401_id[5], ds2401_id[6], ds2401_id[7]); leds_off(LEDS_ALL); /* Autostart processes */ autostart_start(autostart_processes); /* Main scheduler loop */ do { process_run(); }while(1); return 0; }
/*---------------------------------------------------------------------------*/ int main(void) { /* * Initialise hardware. */ //halInit(); clock_init(); //uart1_init(115200); // Led initialisation leds_init(); leds_on(LEDS_RED); /* configure ethernet (GPIOs, clocks, MAC, DMA) */ ETH_BSP_Config(); //INTERRUPTS_ON(); /* * Initialize Contiki and our processes. */ process_init(); /* #if WITH_SERIAL_LINE_INPUT uart1_set_input(serial_line_input_byte); serial_line_init(); #endif*/ /* rtimer and ctimer should be initialized before radio duty cycling layers*/ rtimer_init(); /* etimer_process should be initialized before ctimer */ process_start(&etimer_process, NULL); ctimer_init(); netstack_init(); procinit_init(); autostart_start(autostart_processes); while (1) { int r; do { leds_toggle(LEDS_YELLOW); r = process_run(); } while (r > 0); } }
int main() { //setup internal clock for 80MHz/40MIPS //7.37/2=3.685*43=158.455/2=79.2275 CLKDIVbits.PLLPRE=0; // PLLPRE (N2) 0=/2 PLLFBD=41; //pll multiplier (M) = +2 CLKDIVbits.PLLPOST=0;// PLLPOST (N1) 0=/2 while(!OSCCONbits.LOCK);//wait for PLL ready SRbits.IPL = 0; // All interupt levels enabled dbg_setup_uart(); printf("DP Web Platform - %s started.\n", version); resetCheck(); randomSeed(); rtimer_init(); printf("main: leds init\n"); leds_init(); printf("main: process init\n"); process_init(); printf("main: etimer init\n"); process_start(&etimer_process, NULL); printf("main: clock init\n"); clock_init(); // Note, readMAC() uses eeprom routines, which require clock_init() to setup clock hardware readMAC(); printf("main: eth start\n"); process_start(&enc28j60_process, NULL); printf("main: tcpip start\n"); process_start(&tcpip_process, NULL); // invokes uip_init(); process_start(&announce_process, NULL); process_start(&dhcp_process, NULL); process_start(&resolv_process, NULL); process_start(&ntp_process, NULL); printf("main: autostart\n"); autostart_start(autostart_processes); printf("main: all processes running\n"); while(1) { do { } while(process_run() > 0); idle_count++; /* Idle! */ } return 0; }
void main(int argc, char **argv) { contiki_argc = argc; contiki_argv = argv; #else /* WITH_ARGS */ void main(void) { #endif /* WITH_ARGS */ process_init(); #if 1 ethernet_config = config_read("contiki.cfg"); #else { static struct ethernet_config config = {0xDE08, "cs8900a.eth"}; uip_ipaddr_t addr; uip_ipaddr(&addr, 192,168,0,128); uip_sethostaddr(&addr); uip_ipaddr(&addr, 255,255,255,0); uip_setnetmask(&addr); uip_ipaddr(&addr, 192,168,0,1); uip_setdraddr(&addr); uip_ipaddr(&addr, 192,168,0,1); uip_nameserver_update(&addr, UIP_NAMESERVER_INFINITE_LIFETIME); ethernet_config = &config; } #endif procinit_init(); process_start((struct process *)ðernet_process, (void *)ethernet_config); autostart_start(autostart_processes); log_message("Contiki up and running ...", ""); while(1) { process_run(); etimer_request_poll(); } }
/*-----------------------------------------------------------------------------------*/ void main(void) { struct ethernet_config *ethernet_config; #if WITH_REBOOT rebootafterexit(); #endif /* WITH_REBOOT */ videomode(VIDEOMODE_80COL); process_init(); #if 1 ethernet_config = config_read("contiki.cfg"); #else { static struct ethernet_config config = {0xC0B0, "cs8900a.eth"}; uip_ipaddr_t addr; uip_ipaddr(&addr, 192,168,0,128); uip_sethostaddr(&addr); uip_ipaddr(&addr, 255,255,255,0); uip_setnetmask(&addr); uip_ipaddr(&addr, 192,168,0,1); uip_setdraddr(&addr); uip_ipaddr(&addr, 192,168,0,1); resolv_conf(&addr); ethernet_config = &config; } #endif procinit_init(); process_start((struct process *)ðernet_process, (char *)ethernet_config); autostart_start(autostart_processes); log_message("Contiki up and running ...", ""); while(1) { process_run(); etimer_request_poll(); clock_update(); } }
/*---------------------------------------------------------------------------*/ int main(void) { /* initialize process manager. */ process_init(); autostart_start(autostart_processes); while(1) { process_run(); etimer_request_poll(); } }
/*---------------------------------------------------------------------------*/ int main(void) { leds_init(); leds_on(LEDS_RED); /* Initialize USART */ init_usart(); /* Clock */ clock_init(); leds_on(LEDS_GREEN); ds2401_init(); node_id_restore(); random_init(ds2401_id[0] + node_id); rtimer_init(); /* Process subsystem */ process_init(); process_start(&etimer_process, NULL); ctimer_init(); leds_on(LEDS_YELLOW); init_net(); printf_P(PSTR(CONTIKI_VERSION_STRING " started. Node id %u\n"), node_id); leds_off(LEDS_ALL); /* Autostart processes */ autostart_start(autostart_processes); mmem_init(); /* Main scheduler loop */ do { process_run(); }while(1); return 0; }
void initialize(void) { watchdog_init(); watchdog_start(); #if STACKMONITOR /* Simple stack pointer highwater monitor. Checks for magic numbers in the main * loop. In conjuction with TESTRTIMER, never-used stack will be printed * every STACKMONITOR seconds. */ { extern uint16_t __bss_end; uint16_t p=(uint16_t)&__bss_end; do { *(uint16_t *)p = 0x4242; p+=4; } while (p<SP-4); //don't overwrite our own stack } #endif /* rtimers needed for radio cycling */ rtimer_init(); rs232_init(RS232_PORT_0, BAUD_RATE(38400), USART_DATA_BITS_8 | USART_PARITY_NONE | USART_STOP_BITS_1); rs232_redirect_stdout(RS232_PORT_0); clock_init(); sei(); /* Initialize drivers and event kernel */ process_init(); led_init(); #if 0 procinit_init(); #else process_start(&etimer_process, NULL); process_start(&led_process, NULL); process_start(&led2_process, NULL); #endif PRINTA(CONTIKI_VERSION_STRING " started\r\n"); /* Comment this out if autostart_processes not defined at link */ /* Note AUTOSTART_PROCESSES(...) is only effective in the .co module */ autostart_start(autostart_processes); }
/*-----------------------------------------------------------------------------------*/ void main(void) { struct ethernet_config *ethernet_config; clrscr(); bordercolor(BORDERCOLOR); bgcolor(SCREENCOLOR); process_init(); #if 1 ethernet_config = config_read("contiki.cfg"); #else { static struct ethernet_config config = {0xD500, "cs8900a.eth"}; uip_ipaddr_t addr; uip_ipaddr(&addr, 192,168,0,128); uip_sethostaddr(&addr); uip_ipaddr(&addr, 255,255,255,0); uip_setnetmask(&addr); uip_ipaddr(&addr, 192,168,0,1); uip_setdraddr(&addr); uip_ipaddr(&addr, 192,168,0,1); resolv_conf(&addr); ethernet_config = &config; } #endif procinit_init(); process_start((struct process *)ðernet_process, (char *)ethernet_config); autostart_start(autostart_processes); log_message("Contiki up and running ...", ""); while(1) { process_run(); etimer_request_poll(); } }
int contiki_main(void) { struct timeval tv; process_init(); procinit_init(); #if (TEST_SIM == 0) autostart_start((struct process **)autostart_processes); #endif printf("Contiki initiated, now starting process scheduling\n"); freakz_init(); while(1) { process_run(); tv.tv_sec = 0; tv.tv_usec = 1; /* * int select(int n, * fd_set *readfds, * fd_set *writefds, * fd_set *exceptfds, * struct timeval *timeout); * * select() wait the change of the file. * n: the max file describe + 1 * readfds, writefds and exceptfds is the set of the file, * * struct timeval *timeout是select的超时时间, 这个参数至关重要, * 它可以使select处于三种状态: * 第一. 若将NULL以形参传入, 即不传入时间结构, 就是将select置于阻塞状态, * 一定等到监视文件描述符集合中某个文件描述符发生变化为止; * * 第二. 若将时间值设为0秒0毫秒, 就变成一个纯粹的非阻塞函数, * 不管文件描述符是否有变化, 都立刻返回继续执行, 文件无变化返回0, * 有变化返回一个正值; * * 第三. timeout的值大于0, 这就是等待的超时时间, 即select在timeout时间内阻塞, * 超时时间之内有事件到来就返回了, 否则在超时后不管怎样一定返回, 返回值同上述 */ select(0, NULL, NULL, NULL, &tv); etimer_request_poll(); } return 0; }
/*---------------------------------------------------------------------*/ int codeprop_start_program(void) { int err; codeprop_exit_program(); err = elfloader_load(fd); if(err == ELFLOADER_OK) { PRINTF(("codeprop: starting %s\n", elfloader_autostart_processes[0]->name)); autostart_start(elfloader_autostart_processes); } return err; }
/*---------------------------------------------------------------------------*/ int main(void) { DBGMCU_Config(DBGMCU_SLEEP | DBGMCU_STOP | DBGMCU_STANDBY, ENABLE); leds_init(); //printf("\rStarting Contiki on STM32VL Discovery...\n\r"); clock_init(); process_init(); uip_init(); uip_fw_init(); process_start(&tcpip_process, NULL); process_start(&uip_fw_process, NULL); uip_ipaddr(&hostaddr, 172, 16, 0, 3); uip_sethostaddr(&hostaddr); uip_ipaddr(&netmask, 255, 255, 0, 0); uip_setnetmask(&netmask); uip_ipaddr(&netmask, 172, 16, 0, 1); uip_setdraddr(&draddr); process_start(&etimer_process, NULL); ctimer_init(); /* Networking stack. */ NETSTACK_RADIO.init(); NETSTACK_RDC.init(); NETSTACK_MAC.init(); NETSTACK_NETWORK.init(); { rimeaddr_t rimeaddr; rimeaddr.u8[0] = 0x02; rimeaddr.u8[1] = 0x00; rimeaddr_set_node_addr(&rimeaddr); } autostart_start(autostart_processes); while (1) { process_run(); } return 0; }
int main(void) { //calibrate_rc_osc_32k(); //CO: Had to comment this out /* Init LEDs */ leds_init(); /* Initialize hardware */ init_lowlevel(); /* Clock */ clock_init(); /* Process subsystem */ process_init(); /* Register initial processes */ procinit_init(); //Give ourselves a prefix //init_net(); /* This line wasn't present in ProMini code */ /* Make pin 5 on port B an input (PB5 SCK/PCINT5) */ PORTB &= ~(1<<5); serial_line_init(); /* Autostart processes */ autostart_start(autostart_processes); printf_P(PSTR("\r\n********BOOTING CONTIKI*********\r\n")); printf_P(PSTR("System online.\r\n")); /* Main scheduler loop */ do { process_run(); } while (1); return 0; }
/*---------------------------------------------------------------------------*/ void app_main(void) { printf("Starting Contiki\n"); process_init(); procinit_init(); ctimer_init(); eth_init(); autostart_start(autostart_processes); while(1) { process_run(); } halt(); }
/* Jennic equivalent of main() */ void AppColdStart(void) { /* default startup */ init_hardware(); process_init(); init_net(); procinit_init(); autostart_start(autostart_processes); jts_init(); /* default main loop */ while(1) { process_run(); etimer_request_poll(); } }
int main() { configure_mcu_clocks(); uart_init(115200); printf("Initialising\n"); clock_init(); process_init(); process_start(&etimer_process, NULL); autostart_start(autostart_processes); printf("Processes running\n"); while(1) { do { } while(process_run() > 0); idle_count++; } return 0; }
int main_minimal_net(void) { // TODO: Pegar MAC Address do Microchip MRF24J40MA clock_init(); linkaddr_set_node_addr((linkaddr_t*) &addr); memcpy(&uip_lladdr.addr, &linkaddr_node_addr.u8, sizeof(uip_lladdr.addr)); #if 1 queuebuf_init(); netstack_init(); #endif process_init(); /* procinit_init initializes RPL which sets a ctimer for the first DIS */ /* We must start etimers and ctimers,before calling it */ process_start(&etimer_process, NULL); ctimer_init(); procinit_init(); #if AUTOSTART_ENABLE autostart_start(autostart_processes); #endif OSSemBinaryCreate(0, &Contiki_Sem); PRINTF("\n*******%s online*******\n\r", CONTIKI_VERSION_STRING); while (1) { int n; //char c; //INT8U ret,poll; //clock_time_t next_event; do { n = process_run(); //mrf24j40_get_rssi(); } while (n > 0); OSSemPend(Contiki_Sem, 0); } }
int main (void) { printf(" Initialing \n"); init_gpio(); clock_init(); printf("\n start test!\n"); process_init(); process_start(&etimer_process,NULL); autostart_start(autostart_processes); printf(" Processes running \n"); while(1) { do { }while(process_run()>0); idle_cnt++; } return 0; }
int main(void) { //calibrate_rc_osc_32k(); //CO: Had to comment this out /* Initialize hardware */ init_lowlevel(); leds_init(); leds_on(LEDS_RED); /* Autostart processes */ autostart_start(autostart_processes); /* Main scheduler loop */ while(1) { process_run(); } return 0; }
int another_net(void) { clock_init(); random_init(MOTE_ID); init_net(MOTE_ID); process_init(); start_radio_task(); process_start(&etimer_process, NULL); ctimer_init(); rtimer_init(); procinit_init(); autostart_start(autostart_processes); start_udp_server_task(); PRINTF("Processes running\n"); OSSemBinaryCreate(0, &Contiki_Sem); PRINTF("\n*******%s online*******\n\r", CONTIKI_VERSION_STRING); while (1) { int n; do { n = process_run(); } while (n > 0); OSSemPend(Contiki_Sem, 0); } }
int main() { dbg_setup_uart(); printf("Initialising\n"); clock_init(); process_init(); process_start(&etimer_process, NULL); autostart_start(autostart_processes); printf("Processes running\n"); while(1) { do { } while(process_run() > 0); idle_count++; /* Idle! */ /* Stop processor clock */ /* asm("wfi"::); */ } return 0; }
void SimluateRun(CuTest* tc) { /* * Initialize Contiki and our processes. */ process_init(); process_start(&etimer_process, NULL); ctimer_init(); energest_init(); ENERGEST_ON(ENERGEST_TYPE_CPU); window_init(0xff); autostart_start(autostart_processes); process_start(&event_process, NULL); while(run) { int r; do { /* Reset watchdog. */ r = process_run(); } while(r > 0); #if 0 int n = etimer_next_expiration_time(); if (n > 0) { int p = n - clock_time(); if (p > 0) nanosleep(p); } else { nanosleep(1000); } #endif etimer_request_poll(); } }
/*---------------------------------------------------------------------------*/ int main(void) { printf("Starting Contiki\n"); process_init(); procinit_init(); autostart_start(autostart_processes); /* Make standard output unbuffered. */ setvbuf(stdout, (char *)NULL, _IONBF, 0); while(1) { fd_set fds; int n; struct timeval tv; n = process_run(); tv.tv_sec = 0; tv.tv_usec = 1; FD_ZERO(&fds); FD_SET(STDIN_FILENO, &fds); select(1, &fds, NULL, NULL, &tv); if(FD_ISSET(STDIN_FILENO, &fds)) { char c; if(read(STDIN_FILENO, &c, 1) > 0) { serial_line_input_byte(c); } } etimer_request_poll(); } return 0; }
/*---------------------------------------------------------------------------*/ int main(void) { /* Hardware initialization */ bus_init(); leds_init(); fade(LEDS_GREEN); uart1_init(115200); uart1_set_input(serial_line_input_byte); /* initialize process manager. */ process_init(); serial_line_init(); printf("\n" CONTIKI_VERSION_STRING " started\n"); printf("model: " SENSINODE_MODEL "\n\n"); /* initialize the radio driver */ cc2430_rf_init(); rime_init(sicslowmac_init(&cc2430_rf_driver)); set_rime_addr(); /* start services */ process_start(&etimer_process, NULL); fade(LEDS_RED); autostart_start(autostart_processes); while(1) { process_run(); etimer_request_poll(); } }