本文整理汇总了C++中serial_line_init函数的典型用法代码示例。如果您正苦于以下问题:C++ serial_line_init函数的具体用法?C++ serial_line_init怎么用?C++ serial_line_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了serial_line_init函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: start_process_run_loop
/*---------------------------------------------------------------------------*/
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();
}
}
开发者ID:EDAyele,项目名称:ptunes,代码行数:61,代码来源:contiki_template.c
示例2: main
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++;
}
}
开发者ID:ehigh2014,项目名称:contiki_stm32_keil,代码行数:35,代码来源:contiki-main.c
示例3: main
int
main()
{
configure_mcu_clocks();
uart_init(115200);
printf("Platform init complete, starting contiki init\n");
clock_init();
rtimer_init();
leds_init();
process_init();
#if WITH_SERIAL_LINE_INPUT
uart_set_input(serial_line_input_byte);
serial_line_init();
#endif
process_start(&etimer_process, NULL);
ctimer_init();
autostart_start(autostart_processes);
while(1) {
do {
// meant to do some sleeping here, if we want to save power...
//
} while(process_run() > 0);
}
return 0;
}
开发者ID:frtos-wpan,项目名称:contiki-outoftree,代码行数:26,代码来源:contiki-main.c
示例4: main
/*---------------------------------------------------------------------------*/
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;
}
开发者ID:dak664,项目名称:contiki-2.x,代码行数:59,代码来源:contiki-main.c
示例5: collect_common_net_init
/*---------------------------------------------------------------------------*/
void
collect_common_net_init(void)
{
collect_common_set_send_active(1);
uart1_set_input(serial_line_input_byte);
serial_line_init();
PRINTF("I am sink!\r\n");
}
开发者ID:ChenZJgor,项目名称:contiki,代码行数:10,代码来源:MainSource.c
示例6: collect_common_net_init
/*---------------------------------------------------------------------------*/
void
collect_common_net_init(void)
{
#if CONTIKI_TARGET_Z1
uart0_set_input(serial_line_input_byte);
#else
uart1_set_input(serial_line_input_byte);
#endif
serial_line_init();
}
开发者ID:Asterios,项目名称:contiki-econotag,代码行数:11,代码来源:udp-sender.c
示例7: collect_common_net_init
/*---------------------------------------------------------------------------*/
void
collect_common_net_init(void)
{
#if CONTIKI_TARGET_Z1
uart0_set_input(serial_line_input_byte);
#else
uart1_set_input(serial_line_input_byte);
#endif
serial_line_init();
PRINTF("I am sink!\n");
printf("Energy: %d\n", ENERGEST_CONF_ON);
}
开发者ID:pvhau,项目名称:contiki-ext,代码行数:14,代码来源:udp-sink.c
示例8: collect_common_net_init
/*---------------------------------------------------------------------------*/
void
collect_common_net_init(void)
{
#if CONTIKI_TARGET_Z1
uart0_set_input(serial_line_input_byte);
#else
uart1_set_input(serial_line_input_byte);
#endif
serial_line_init();
PRINTF("I am sink!\n");
//NETSTACK_RDC.off(0);
//NETSTACK_RDC.init();
}
开发者ID:mlwymore,项目名称:contiki,代码行数:15,代码来源:udp-sink.c
示例9: main
/*---------------------------------------------------------------------------*/
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;
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;
}
开发者ID:michaelkirsche,项目名称:6lowpan4omnet-diy,代码行数:47,代码来源:contiki-main.c
示例10: PROCESS_THREAD
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(sky_shell_process, ev, data)
{
PROCESS_BEGIN();
/* WITH_UIP=1 assumes incoming SLIP serial data.
* We override this assumption by restoring default serial input handler. */
uart1_set_input(serial_line_input_byte);
serial_line_init();
serial_shell_init();
shell_file_init();
shell_wget_init();
shell_text_init();
PROCESS_END();
}
开发者ID:EDAyele,项目名称:ptunes,代码行数:18,代码来源:sky-shell-webserver.c
示例11: PROCESS_THREAD
PROCESS_THREAD(demo_6lbr_process, ev, data)
{
PROCESS_BEGIN();
#if SHELL
uart1_set_input(serial_line_input_byte);
serial_line_init();
serial_shell_init();
shell_ping_init();
shell_6lbr_init();
#else
start_apps();
#endif
PROCESS_END();
}
开发者ID:denghongcai,项目名称:6lbr,代码行数:17,代码来源:6lbr-demo.c
示例12: main
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;
}
开发者ID:andyhelp,项目名称:contiki-arduino,代码行数:45,代码来源:contiki-arduino-main.c
示例13: main
/*---------------------------------------------------------------------------*/
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();
}
}
开发者ID:Asterios,项目名称:contiki-econotag,代码行数:40,代码来源:contiki-sensinode-main.c
示例14: PROCESS_THREAD
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(udp_server_process, ev, data)
{
static int connected = 0;
static session_t dst;
PROCESS_BEGIN();
dtls_init();
init_dtls(&dst);
serial_line_init();
if (!dtls_context) {
dsrv_log(LOG_EMERG, "cannot create context\n");
PROCESS_EXIT();
}
while(1) {
PROCESS_YIELD();
if(ev == tcpip_event) {
dtls_handle_read(dtls_context);
} else if (ev == serial_line_event_message) {
register size_t len = min(strlen(data), sizeof(buf) - buflen);
memcpy(buf + buflen, data, len);
buflen += len;
if (buflen < sizeof(buf) - 1)
buf[buflen++] = '\n'; /* serial event does not contain LF */
}
if (buflen) {
if (!connected)
connected = dtls_connect(dtls_context, &dst) >= 0;
try_send(dtls_context, &dst);
}
}
PROCESS_END();
}
开发者ID:Asterios,项目名称:contiki-tls-dtls,代码行数:40,代码来源:dtls-client.c
示例15: main
/**
* \brief Main function for CC26xx-based platforms
*
* The same main() is used for all supported boards
*/
int
main(void)
{
/* Enable flash cache and prefetch. */
ti_lib_vims_mode_set(VIMS_BASE, VIMS_MODE_ENABLED);
ti_lib_vims_configure(VIMS_BASE, true, true);
ti_lib_int_master_disable();
/* Set the LF XOSC as the LF system clock source */
oscillators_select_lf_xosc();
lpm_init();
board_init();
gpio_interrupt_init();
leds_init();
/*
* Disable I/O pad sleep mode and open I/O latches in the AON IOC interface
* This is only relevant when returning from shutdown (which is what froze
* latches in the first place. Before doing these things though, we should
* allow software to first regain control of pins
*/
ti_lib_pwr_ctrl_io_freeze_disable();
fade(LEDS_RED);
ti_lib_int_master_enable();
soc_rtc_init();
clock_init();
rtimer_init();
watchdog_init();
process_init();
random_init(0x1234);
/* Character I/O Initialisation */
#if CC26XX_UART_CONF_ENABLE
cc26xx_uart_init();
#endif
serial_line_init();
printf("Starting " CONTIKI_VERSION_STRING "\n\r");
printf("With DriverLib v%u.%u\n\r", DRIVERLIB_RELEASE_GROUP,
DRIVERLIB_RELEASE_BUILD);
printf(BOARD_STRING "\n\r");
process_start(&etimer_process, NULL);
ctimer_init();
energest_init();
ENERGEST_ON(ENERGEST_TYPE_CPU);
fade(LEDS_YELLOW);
printf(" Net: ");
printf("%s\n\r", NETSTACK_NETWORK.name);
printf(" MAC: ");
printf("%s\n\r", NETSTACK_MAC.name);
printf(" RDC: ");
printf("%s", NETSTACK_RDC.name);
if(NETSTACK_RDC.channel_check_interval() != 0) {
printf(", Channel Check Interval: %u ticks",
NETSTACK_RDC.channel_check_interval());
}
printf("\n\r");
netstack_init();
set_rf_params();
#if NETSTACK_CONF_WITH_IPV6
memcpy(&uip_lladdr.addr, &linkaddr_node_addr, sizeof(uip_lladdr.addr));
queuebuf_init();
process_start(&tcpip_process, NULL);
#endif /* NETSTACK_CONF_WITH_IPV6 */
fade(LEDS_GREEN);
process_start(&sensors_process, NULL);
autostart_start(autostart_processes);
watchdog_start();
fade(LEDS_ORANGE);
while(1) {
//.........这里部分代码省略.........
开发者ID:yplam,项目名称:SensorTagUDP,代码行数:101,代码来源:contiki-main.c
示例16: contiki_init
//.........这里部分代码省略.........
memset(longaddr, 0, sizeof(longaddr));
linkaddr_copy((linkaddr_t *)&longaddr, &linkaddr_node_addr);
printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
longaddr[0], longaddr[1], longaddr[2], longaddr[3],
longaddr[4], longaddr[5], longaddr[6], longaddr[7]);
}
queuebuf_init();
/* Initialize communication stack */
netstack_init();
printf("%s/%s/%s, channel check rate %lu Hz\n",
NETSTACK_NETWORK.name, NETSTACK_MAC.name, NETSTACK_RDC.name,
CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1:
NETSTACK_RDC.channel_check_interval()));
#if WITH_UIP
/* IPv4 CONFIGURATION */
{
uip_ipaddr_t hostaddr, netmask;
process_start(&tcpip_process, NULL);
process_start(&uip_fw_process, NULL);
process_start(&slip_process, NULL);
slip_set_input_callback(set_gateway);
uip_init();
uip_fw_init();
uip_ipaddr(&hostaddr, 172,16,linkaddr_node_addr.u8[0],linkaddr_node_addr.u8[1]);
uip_ipaddr(&netmask, 255,255,0,0);
uip_ipaddr_copy(&meshif.ipaddr, &hostaddr);
uip_sethostaddr(&hostaddr);
uip_setnetmask(&netmask);
uip_over_mesh_set_net(&hostaddr, &netmask);
uip_over_mesh_set_gateway_netif(&slipif);
uip_fw_default(&meshif);
uip_over_mesh_init(UIP_OVER_MESH_CHANNEL);
rs232_set_input(slip_input_byte);
printf("IPv4 address: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&hostaddr));
}
#endif /* WITH_UIP */
#if WITH_UIP6
/* IPv6 CONFIGURATION */
{
int i;
uint8_t addr[sizeof(uip_lladdr.addr)];
for(i = 0; i < sizeof(uip_lladdr.addr); i += 2) {
addr[i + 1] = node_id & 0xff;
addr[i + 0] = node_id >> 8;
}
linkaddr_copy((linkaddr_t *)addr, &linkaddr_node_addr);
memcpy(&uip_lladdr.addr, addr, sizeof(uip_lladdr.addr));
process_start(&tcpip_process, NULL);
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]);
}
if(1) {
uip_ipaddr_t ipaddr;
int i;
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
printf("Tentative global IPv6 address ");
for(i = 0; i < 7; ++i) {
printf("%02x%02x:",
ipaddr.u8[i * 2], ipaddr.u8[i * 2 + 1]);
}
printf("%02x%02x\n",
ipaddr.u8[7 * 2], ipaddr.u8[7 * 2 + 1]);
}
}
#endif /* WITH_UIP6 */
/* Initialize eeprom */
eeprom_init();
/* Start serial process */
serial_line_init();
/* Start autostart processes (defined in Contiki application) */
print_processes(autostart_processes);
autostart_start(autostart_processes);
}
开发者ID:200018171,项目名称:contiki,代码行数:101,代码来源:contiki-cooja-main.c
示例17: main
//.........这里部分代码省略.........
lladdr->ipaddr.u8[i * 2 + 1]);
}
printf("%02x%02x\n", lladdr->ipaddr.u8[14], lladdr->ipaddr.u8[15]);
}
if(1) {
uip_ipaddr_t ipaddr;
int i;
uip_ip6addr(&ipaddr, 0xfc00, 0, 0, 0, 0, 0, 0, 0);
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
printf("Tentative global IPv6 address ");
for(i = 0; i < 7; ++i) {
printf("%02x%02x:",
ipaddr.u8[i * 2], ipaddr.u8[i * 2 + 1]);
}
printf("%02x%02x\n",
ipaddr.u8[7 * 2], ipaddr.u8[7 * 2 + 1]);
}
#else /* WITH_UIP6 */
netstack_init();
printf("%s %lu %u\n",
NETSTACK_RDC.name,
CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0? 1:
NETSTACK_RDC.channel_check_interval()),
RF_CHANNEL);
#endif /* WITH_UIP6 */
#if !WITH_UIP6
uart1_set_input(serial_line_input_byte);
serial_line_init();
#endif
#ifdef NETSTACK_AES_H
#ifndef NETSTACK_AES_KEY
#error Please define NETSTACK_AES_KEY!
#endif /* NETSTACK_AES_KEY */
{
const uint8_t key[] = NETSTACK_AES_KEY;
netstack_aes_set_key(key);
}
/*printf("AES encryption is enabled: '%s'\n", NETSTACK_AES_KEY);*/
printf("AES encryption is enabled\n");
#else /* NETSTACK_AES_H */
printf("Warning: AES encryption is disabled\n");
#endif /* NETSTACK_AES_H */
#if TIMESYNCH_CONF_ENABLED
timesynch_init();
timesynch_set_authority_level(rimeaddr_node_addr.u8[0]);
#endif /* TIMESYNCH_CONF_ENABLED */
#if CC11xx_CC1101 || CC11xx_CC1120
printf("cc11xx radio at channel %d\n", RF_CHANNEL);
cc11xx_channel_set(RF_CHANNEL);
#endif /* CC11xx_CC1101 || CC11xx_CC1120 */
#if CONFIGURE_CC2420
{
uint8_t longaddr[8];
uint16_t shortaddr;
shortaddr = (rimeaddr_node_addr.u8[0] << 8) +
开发者ID:ADVANSEE,项目名称:mist,代码行数:67,代码来源:contiki-exp5438-main.c
示例18: main
/*---------------------------------------------------------------------------*/
int
main(void)
{
/*
* Initalize hardware.
*/
halInit();
clock_init();
uart1_init(115200);
/* Led initialization */
leds_init();
INTERRUPTS_ON();
PRINTF("\r\nStarting ");
PRINTF(CONTIKI_VERSION_STRING);
PRINTF(" on %s\r\n", boardDescription->name);
boardPrintStringDescription();
PRINTF("\r\n");
/*
* 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();
set_rime_addr();
printf("%s %s, channel check rate %lu Hz\n",
NETSTACK_MAC.name, NETSTACK_RDC.name,
CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1:
NETSTACK_RDC.channel_check_interval()));
printf("802.15.4 PAN ID 0x%x, EUI-%d:",
IEEE802154_CONF_PANID, UIP_CONF_LL_802154?64:16);
uip_debug_lladdr_print(&linkaddr_node_addr);
printf(", radio channel %u\n", RF_CHANNEL);
procinit_init();
energest_init();
ENERGEST_ON(ENERGEST_TYPE_CPU);
/* Set the Clear Channel Assessment (CCA) threshold of the
radio. The CCA threshold is used both for sending packets and for
waking up ContikiMAC nodes. If the CCA threshold is too high,
ContikiMAC will not wake up from neighbor transmissions. If the
CCA threshold is too low, transmissions will be too restrictive
and no packets will be sent. DEFAULT_RADIO_CCA_THRESHOLD is
defined in this file. */
ST_RadioSetEdCcaThreshold(DEFAULT_RADIO_CCA_THRESHOLD);
autostart_start(autostart_processes);
#if UIP_CONF_IPV6
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]);
}
if(!UIP_CONF_IPV6_RPL) {
uip_ipaddr_t ipaddr;
int i;
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
printf("Tentative global IPv6 address ");
for(i = 0; i < 7; ++i) {
printf("%02x%02x:",
ipaddr.u8[i * 2], ipaddr.u8[i * 2 + 1]);
}
printf("%02x%02x\n",
ipaddr.u8[7 * 2], ipaddr.u8[7 * 2 + 1]);
}
#endif /* UIP_CONF_IPV6 */
//.........这里部分代码省略.........
开发者ID:200018171,项目名称:contiki,代码行数:101,代码来源:contiki-main.c
示例19: main
/**
* \brief Main routine for the cc2538dk platform
*/
int
main(void)
{
nvic_init();
ioc_init();
sys_ctrl_init();
clock_init();
lpm_init();
rtimer_init();
gpio_init();
leds_init();
fade(LEDS_YELLOW);
process_init();
watchdog_init();
button_sensor_init();
/*
* Character I/O Initialisation.
* When the UART receives a character it will call serial_line_input_byte to
* notify the core. The same applies for the USB driver.
*
* If slip-arch is also linked in afterwards (e.g. if we are a border router)
* it will overwrite one of the two peripheral input callbacks. Characters
* received over the relevant peripheral will be handled by
* slip_input_byte instead
*/
#if UART_CONF_ENABLE
uart_init(0);
uart_init(1);
uart_set_input(SERIAL_LINE_CONF_UART, serial_line_input_byte);
#endif
#if USB_SERIAL_CONF_ENABLE
usb_serial_init();
usb_serial_set_input(serial_line_input_byte);
#endif
serial_line_init();
INTERRUPTS_ENABLE();
fade(LEDS_GREEN);
PUTS(CONTIKI_VERSION_STRING);
PUTS(BOARD_STRING);
PRINTF(" Net: ");
PRINTF("%s\n", NETSTACK_NETWORK.name);
PRINTF(" MAC: ");
PRINTF("%s\n", NETSTACK_MAC.name);
PRINTF(" RDC: ");
PRINTF("%s\n", NETSTACK_RDC.name);
/* Initialise the H/W RNG engine. */
random_init(0);
udma_init();
process_start(&etimer_process, NULL);
ctimer_init();
set_rf_params();
#if CRYPTO_CONF_INIT
crypto_init();
crypto_disable();
#endif
netstack_init();
#if NETSTACK_CONF_WITH_IPV6
memcpy(&uip_lladdr.addr, &linkaddr_node_addr, sizeof(uip_lladdr.addr));
queuebuf_init();
process_start(&tcpip_process, NULL);
#endif /* NETSTACK_CONF_WITH_IPV6 */
adc_init();
process_start(&sensors_process, NULL);
energest_init();
ENERGEST_ON(ENERGEST_TYPE_CPU);
autostart_start(autostart_processes);
watchdog_start();
fade(LEDS_ORANGE);
while(1) {
uint8_t r;
do {
/* Reset watchdog and handle polls and events */
watchdog_periodic();
r = process_run();
//.........这里部分代码省略.........
开发者ID:13416795,项目名称:contiki,代码行数:101,代码来源:contiki-main.c
示例20: main
//.........这里部分代码省略.........
if(!UIP_CONF_IPV6_RPL) {
uip_ipaddr_t ipaddr;
int i;
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
printf("Tentative global IPv6 address ");
for(i = 0; i < 7; ++i) {
printf("%02x%02x:",
ipaddr.u8[i * 2], ipaddr.u8[i * 2 + 1]);
}
printf("%02x%02x\n",
ipaddr.u8[7 * 2], ipaddr.u8[7 * 2 + 1]);
}
#else /* NETSTACK_CONF_WITH_IPV6 */
netstack_init();
//NETSTACK_RDC.init();
//NETSTACK_MAC.init();
//NETSTACK_LLSEC.init();
//NETSTACK_NETWORK.init();
printf("%s %s %s, channel check rate %lu Hz, radio channel %u\n",
NETSTACK_LLSEC.name, NETSTACK_MAC.name, NETSTACK_RDC.name,
CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1 :
NETSTACK_RDC.channel_check_interval()),
CC2420_CONF_CHANNEL);
#endif /* NETSTACK_CONF_WITH_IPV6 */
#if !NETSTACK_CONF_WITH_IPV4 && !NETSTACK_CONF_WITH_IPV6
uart0_set_input(serial_line_input_byte);
serial_line_init();
#endif
leds_off(LEDS_GREEN);
#if TIMESYNCH_CONF_ENABLED
timesynch_init();
timesynch_set_authority_level(linkaddr_node_addr.u8[0]);
#endif /* TIMESYNCH_CONF_ENABLED */
#if NETSTACK_CONF_WITH_IPV4
process_start(&tcpip_process, NULL);
process_start(&uip_fw_process, NULL); /* Start IP output */
process_start(&slip_process, NULL);
slip_set_input_callback(set_gateway);
{
uip_ipaddr_t hostaddr, netmask;
uip_init();
uip_ipaddr(&hostaddr, 172, 16,
linkaddr_node_addr.u8[0], linkaddr_node_addr.u8[1]);
uip_ipaddr(&netmask, 255, 255, 0, 0);
uip_ipaddr_copy(&meshif.ipaddr, &hostaddr);
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);
开发者ID:mlwymore,项目名称:contiki,代码行数:67,代码来源:contiki-z1-main.c
注:本文中的serial_line_init函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论