int main() { disableIRQ(); disableFIQ(); *AT91C_AIC_IDCR = 0xffffffff; *AT91C_PMC_PCDR = 0xffffffff; *AT91C_PMC_PCER = (1 << AT91C_ID_PIOA); dbg_setup_uart(); printf("Initialising\n"); dbg_set_input_handler(recv_input); leds_arch_init(); clock_init(); process_init(); printf("Started\n"); procinit_init(); enableIRQ(); printf("Processes running\n"); while(1) { do { /* Reset watchdog. */ } while(process_run() > 0); /* Idle! */ /* Stop processor clock */ *AT91C_PMC_SCDR |= AT91C_PMC_PCK; } return 0; }
int main() { //dubug uart init dbg_setup_uart(); clock_init(); rtimer_init(); //process init first process_init(); uart1_set_input(serial_line_input_byte); serial_line_init(); process_start(&etimer_process, NULL); /* with keil, can't use the AUTOSTART_PROCESSES to add the exmaple or it will be error * So in this project, start the process manual. */ #ifdef WITH_LED_BLINK process_start(&blink_process, NULL); #endif #ifdef WITH_CONTIKI_SHELL process_start(&stm32_shell_process, NULL); #endif #ifdef WITH_RTIMER_TEST process_start(&rtimer_ex_process, NULL); #endif while(1) { do {} while(process_run()>0); idle_count++; } }
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; }
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 lowlevel_init() { rimeaddr_t rimeaddr; uint16_t *fsize = (uint16_t *)0x1FF8004C; uint16_t *uid96 = (uint16_t *)0x1FF80050; uint32_t *dbgmcu_id = (uint32_t *)0xE0042000; uint16_t uid16; dbg_setup_uart(); printf("\nInitialising\n"); printf("Device ID: 0x%03x, silicon rev: 0x%04x\n", (unsigned int)*dbgmcu_id & 0x0fff, (unsigned int)(*dbgmcu_id >> 16) & 0xffff); printf("Flash size is %d kB\n", *fsize); printf("UID96 is %04x %04x %04x %04x %04x %04x\n", uid96[0], uid96[1], uid96[2], uid96[3], uid96[4], uid96[5]); uid16 = u101_chksum(0, (uint8_t *)uid96, 12); printf("Pseudo-UID16 is %02x\n", uid16); clock_init(); rtimer_init(); process_init(); process_start(&etimer_process, NULL); ctimer_init(); serial_line_init(); leds_init(); #ifdef U101_RF231 printf("Low-level networking init\n"); queuebuf_init(); NETSTACK_RADIO.init(); NETSTACK_RADIO.on(); NETSTACK_MAC.init(); NETSTACK_RDC.on(); #endif #if 0 printf("%s %s, channel check rate %u Hz, radio channel %u\n", NETSTACK_MAC.name, NETSTACK_RDC.name, CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1: NETSTACK_RDC.channel_check_interval()), RF_CHANNEL); #endif //memcpy(&uip_lladdr.addr, ds2411_id, sizeof(uip_lladdr.addr)); #if defined WITH_UIP6 printf("\nAddresses [%u max]\n", UIP_DS6_ADDR_NB); for (i=0; i<UIP_DS6_ADDR_NB; i++) { if (uip_ds6_if.addr_list[i].isused) { uip_debug_ipaddr_print(&uip_ds6_if.addr_list[i].ipaddr); printf("\n"); } } #endif /* Temporarily, we use a part of the STM32's UID as address. It seems like uid_0[1] is usable in our batch. Note that this does not guarrantee unique addresses. */ rimeaddr.u8[0] = (uint8_t)(uid16 >> 8) & 0xff; rimeaddr.u8[1] = (uint8_t)(uid16 & 0xff); printf("Rime address is: %02x.%02x\n", rimeaddr.u8[0], rimeaddr.u8[1]); #if NETSTACK_CONF_RADIO == rf230_driver rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&rimeaddr.u8); rf230_set_channel(CHANNEL_802_15_4); rimeaddr_set_node_addr(&rimeaddr); #endif process_start(&tcpip_process, NULL); #if defined WITH_UIP6 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]); } printf("%02x%02x\n", lladdr->ipaddr.u8[14], lladdr->ipaddr.u8[15]); } printf("\n"); #endif //em_init(); leds_on(LEDS_ALL); print_local_addresses(); #ifdef WITH_UIP printf("Starting tcpip and fw\n"); process_start(&tcpip_process, NULL); process_start(&uip_fw_process, NULL); #endif #ifdef WITH_USB //(void)setup_usb(); process_start(&usbeth_process, NULL); #endif //process_start(&lsm303_process, NULL); //process_start(&eriks_process, NULL); printf("Processes running\n"); }
int main() { disableIRQ(); disableFIQ(); *AT91C_AIC_IDCR = 0xffffffff; *AT91C_PMC_PCDR = 0xffffffff; *AT91C_PMC_PCER = (1 << AT91C_ID_PIOA); dbg_setup_uart(); printf("Initialising\n"); leds_arch_init(); clock_init(); process_init(); process_start(&etimer_process, NULL); ctimer_init(); robot_stepper_init(); enableIRQ(); cc2420_init(); cc2420_set_pan_addr(0x2024, 0, &uip_hostaddr.u16[1]); cc2420_set_channel(RF_CHANNEL); rime_init(nullmac_init(&cc2420_driver)); printf("CC2420 setup done\n"); rimeaddr_set_node_addr(&node_addr); #if WITH_UIP { uip_ipaddr_t hostaddr, netmask; uip_init(); uip_ipaddr(&hostaddr, 172,16, rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]); uip_ipaddr(&netmask, 255,255,0,0); uip_ipaddr_copy(&meshif.ipaddr, &hostaddr); printf("Host addr\n"); uip_sethostaddr(&hostaddr); uip_setnetmask(&netmask); uip_over_mesh_set_net(&hostaddr, &netmask); /* uip_fw_register(&slipif);*/ /*uip_over_mesh_set_gateway_netif(&slipif);*/ uip_fw_default(&meshif); printf("Mesh init\n"); uip_over_mesh_init(UIP_OVER_MESH_CHANNEL); printf("uIP started with IP address %d.%d.%d.%d\n", uip_ipaddr_to_quad(&hostaddr)); } #endif /* WITH_UIP */ #if WITH_UIP process_start(&tcpip_process, NULL); process_start(&uip_fw_process, NULL); /* Start IP output */ #endif /* WITH_UIP */ printf("Heap size: %ld bytes\n", &__heap_end__ - (char*)sbrk(0)); printf("Started\n"); autostart_start(autostart_processes); printf("Processes running\n"); while(1) { do { /* Reset watchdog. */ wdt_reset(); } while(process_run() > 0); /* Idle! */ /* Stop processor clock */ *AT91C_PMC_SCDR |= AT91C_PMC_PCK; } return 0; }