本文整理汇总了C++中clock_init函数的典型用法代码示例。如果您正苦于以下问题:C++ clock_init函数的具体用法?C++ clock_init怎么用?C++ clock_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clock_init函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
unsigned char ch = '\0';
static char lastcommand[CFG_CBSIZE] = { 0, };
int flag = 0;
int i = 0;
clock_init();
led1_on();
//init_baudrate();
led2_on();
//clock_init();
initUART();
/*
serial_putc('c');
serial_putc('d');
serial_putc('o');
printf("11 is %d\n", 11);
*/
printf("xyz.blk cblk is \n");
run_command ("download", 0);
int len = 0;
for (;;) {
len = readline (CFG_PROMPT);
if (len > 0)
strcpy(lastcommand, console_buffer);
if (len == -1)
puts ("<INTERRUPT>\n");
else
run_command (lastcommand, flag);
}
//printf1("code\n");
//printf1("11.1 is %s\n", "kdh");
/*
ch = '\n';
serial_putc(ch/10+'0');
serial_putc(ch%10+'0');
serial_putc(' ');
*/
//nand_init();
/*
unsigned char data[2049] = {0};
nand_read( &data[0], 0, 2048);
for ( i = 0; i < 20; i++ )
{
ch = data[i];
serial_putc(ch/16 >= 10 ? ch/16 - 10 +'A' : ch/16+'0');
serial_putc(ch%16 >= 10 ? ch%16 - 10 +'A' : ch%16+'0');
serial_putc(' ');
}
*/
/*
LED1_ON();
init_baudrate();
clock_init();
initUART();
serial_putc('c');
serial_putc('o');
serial_putc('d');
serial_putc('e');
serial_putc('\n');
serial_putc('\n');
ch = '\n';
serial_putc(ch/10+'0');
serial_putc(ch%10+'0');
serial_putc(' ');
delay(800000);
LED1_OFF();
*/
//printf1("pclk scale is %d\n", get_PCLK());
while(1)
{
ch = serial_getc();
//if (ch <= '9' && ch >= '0')
if (ch == '\r')
ch = '\n';
serial_putc(ch);
};
//.........这里部分代码省略.........
开发者ID:kongdehua,项目名称:uboot,代码行数:101,代码来源:main.c
示例2: main
int main(void)
{
unsigned int i;
uip_ipaddr_t ipaddr; /* local IP address */
struct timer periodic_timer, arp_timer;
char uart_test[]= "\nWelcome to smart home debugger";
// system init
SystemInit(); /* setup core clocks */
// clock init
clock_init();
//uart init..
UARTInit(3, 38400);
UARTSend(3, (uint8_t *)uart_test, sizeof(uart_test) );
// two timers for tcp/ip
timer_set(&periodic_timer, CLOCK_SECOND / 2); /* 0.5s */
timer_set(&arp_timer, CLOCK_SECOND * 10); /* 10s */
// ethernet init
tapdev_init();
// Initialize the uIP TCP/IP stack.
uip_init();
uip_ipaddr(ipaddr, 192,168,1,210);
//uip_ipaddr(ipaddr, 192,168,0,210);
uip_sethostaddr(ipaddr); /* host IP address */
uip_ipaddr(ipaddr, 192,168,1,1); //this is for the case when the uc is connected to the internet
//uip_ipaddr(ipaddr, 192,168,0,1); //this is for my local network
uip_setdraddr(ipaddr); /* router IP address */
uip_ipaddr(ipaddr, 255,255,255,0);
uip_setnetmask(ipaddr); /* mask */
// Initialize the HTTP server, listen to port 80.
//httpd_init();
scadapp_init();
while(1)
{
/* receive packet and put in uip_buf */
uip_len = tapdev_read(uip_buf);
if(uip_len > 0) /* received packet */
{
if(BUF->type == htons(UIP_ETHTYPE_IP)) /* IP packet */
{
uip_arp_ipin();
uip_input();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0)
{
uip_arp_out();
tapdev_send(uip_buf,uip_len);
}
}
else if(BUF->type == htons(UIP_ETHTYPE_ARP)) /*ARP packet */
{
uip_arp_arpin();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0)
{
tapdev_send(uip_buf,uip_len); /* ARP ack*/
}
}
}
else if(timer_expired(&periodic_timer)) /* no packet but periodic_timer time out (0.5s)*/
{
timer_reset(&periodic_timer);
for(i = 0; i < UIP_CONNS; i++)
{
uip_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0)
{
uip_arp_out();
tapdev_send(uip_buf,uip_len);
}
}
#if UIP_UDP
for(i = 0; i < UIP_UDP_CONNS; i++) {
uip_udp_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
//.........这里部分代码省略.........
开发者ID:virajmotivaras,项目名称:LPC_1768_uC_server,代码行数:101,代码来源:main.c
示例3: main
int main(void) {
/* generic hw init */
hw_init();
/* init uart */
uart_init();
#ifdef DEBUG_INIT
printf("AlceOSD hw%dv%d fw%d.%d.%d\r\n", hw_rev >> 4, hw_rev & 0xf, VERSION_MAJOR, VERSION_MINOR, VERSION_DEV);
if (RCONbits.WDTO)
printf("watchdog reset\r\n");
if (RCONbits.EXTR)
printf("external reset\r\n");
if (RCONbits.SWR)
printf("software reset\r\n");
if (RCONbits.IOPUWR)
printf("ill opcode / uninit W reset\r\n");
if (RCONbits.WDTO)
printf("trap conflict reset\r\n");
#endif
/* real time clock init */
clock_init();
/* adc init */
adc_init();
/* init video driver */
init_video();
/* try to load config from flash */
config_init();
/* init widget modules */
widgets_init();
/* setup tabs */
tabs_init();
/* welcome message */
console_printf("AlceOSD hw%dv%d fw%d.%d.%d\n", hw_rev >> 4, hw_rev & 0xf, VERSION_MAJOR, VERSION_MINOR, VERSION_DEV);
/* init home tracking */
init_home();
/* init flight status tracking */
init_flight_stats();
/* init mavlink module */
mavlink_init();
/* init uavtalk module */
uavtalk_init();
/* init frsky module */
frsky_init();
/* link serial ports to processes */
uart_set_config_clients();
/* enable all interrupts */
_IPL = 0;
_IPL3 = 1;
console_printf("Processes running...\n");
/* main loop */
process_run();
return 0;
}
开发者ID:ericyao2013,项目名称:alceosd,代码行数:70,代码来源:main.c
示例4: 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
示例5: initialize
/*-----------------------------Low level initialization--------------------*/
static void initialize(void) {
watchdog_init();
watchdog_start();
#if CONFIG_STACK_MONITOR
/* Simple stack pointer highwater monitor. The 'm' command in cdc_task.c
* looks for the first overwritten magic number.
*/
{
extern uint16_t __bss_end;
uint16_t p=(uint16_t)&__bss_end;
do {
*(uint16_t *)p = 0x4242;
p+=100;
} while (p<SP-100); //don't overwrite our own stack
}
#endif
/* Initialize hardware */
// Checks for "finger", jumps to DFU if present.
init_lowlevel();
/* Clock */
clock_init();
/* Leds are referred to by number to prevent any possible confusion :) */
/* Led0 Blue Led1 Red Led2 Green Led3 Yellow */
Leds_init();
Led1_on();
/* Get a random (or probably different) seed for the 802.15.4 packet sequence number.
* Some layers will ignore duplicates found in a history (e.g. Contikimac)
* causing the initial packets to be ignored after a short-cycle restart.
*/
ADMUX =0x1E; //Select AREF as reference, measure 1.1 volt bandgap reference.
ADCSRA=1<<ADEN; //Enable ADC, not free running, interrupt disabled, fastest clock
ADCSRA|=1<<ADSC; //Start conversion
while (ADCSRA&(1<<ADSC)); //Wait till done
PRINTD("ADC=%d\n",ADC);
random_init(ADC);
ADCSRA=0; //Disable ADC
#if USB_CONF_RS232
/* Use rs232 port for serial out (tx, rx, gnd are the three pads behind jackdaw leds */
rs232_init(RS232_PORT_0, USART_BAUD_57600,USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);
/* Redirect stdout to second port */
rs232_redirect_stdout(RS232_PORT_0);
#if ANNOUNCE
PRINTA("\n\n*******Booting %s*******\n",CONTIKI_VERSION_STRING);
#endif
#endif
/* rtimer init needed for low power protocols */
rtimer_init();
/* Process subsystem. */
process_init();
/* etimer process must be started before USB or ctimer init */
process_start(&etimer_process, NULL);
Led2_on();
/* Now we can start USB enumeration */
process_start(&usb_process, NULL);
/* Start CDC enumeration, bearing in mind that it may fail */
/* Hopefully we'll get a stdout for startup messages, if we don't already */
#if USB_CONF_SERIAL
process_start(&cdc_process, NULL);
{unsigned short i;
for (i=0;i<65535;i++) {
process_run();
watchdog_periodic();
if (stdout) break;
}
#if !USB_CONF_RS232
PRINTA("\n\n*******Booting %s*******\n",CONTIKI_VERSION_STRING);
#endif
}
#endif
if (!stdout) Led3_on();
#if RF230BB
#if JACKDAW_CONF_USE_SETTINGS
PRINTA("Settings manager will be used.\n");
#else
{uint8_t x[2];
*(uint16_t *)x = eeprom_read_word((uint16_t *)&eemem_channel);
if((uint8_t)x[0]!=(uint8_t)~x[1]) {
PRINTA("Invalid EEPROM settings detected. Rewriting with default values.\n");
get_channel_from_eeprom();
}
}
#endif
ctimer_init();
/* Start radio and radio receive process */
/* Note this starts RF230 process, so must be done after process_init */
//.........这里部分代码省略.........
开发者ID:SmallLars,项目名称:ba-codtls,代码行数:101,代码来源:contiki-raven-main.c
示例6: kernel_bootstrap
void
kernel_bootstrap(void)
{
kern_return_t result;
thread_t thread;
char namep[16];
printf("%s\n", version); /* log kernel version */
if (PE_parse_boot_argn("-l", namep, sizeof (namep))) /* leaks logging */
turn_on_log_leaks = 1;
PE_parse_boot_argn("trace", &new_nkdbufs, sizeof (new_nkdbufs));
PE_parse_boot_argn("trace_wake", &wake_nkdbufs, sizeof (wake_nkdbufs));
PE_parse_boot_argn("trace_panic", &write_trace_on_panic, sizeof(write_trace_on_panic));
PE_parse_boot_argn("trace_typefilter", &trace_typefilter, sizeof(trace_typefilter));
scale_setup();
kernel_bootstrap_log("vm_mem_bootstrap");
vm_mem_bootstrap();
kernel_bootstrap_log("cs_init");
cs_init();
kernel_bootstrap_log("vm_mem_init");
vm_mem_init();
machine_info.memory_size = (uint32_t)mem_size;
machine_info.max_mem = max_mem;
machine_info.major_version = version_major;
machine_info.minor_version = version_minor;
#if CONFIG_TELEMETRY
kernel_bootstrap_log("telemetry_init");
telemetry_init();
#endif
#if CONFIG_CSR
kernel_bootstrap_log("csr_init");
csr_init();
#endif
kernel_bootstrap_log("stackshot_lock_init");
stackshot_lock_init();
kernel_bootstrap_log("sched_init");
sched_init();
kernel_bootstrap_log("waitq_bootstrap");
waitq_bootstrap();
kernel_bootstrap_log("ipc_bootstrap");
ipc_bootstrap();
#if CONFIG_MACF
kernel_bootstrap_log("mac_policy_init");
mac_policy_init();
#endif
kernel_bootstrap_log("ipc_init");
ipc_init();
/*
* As soon as the virtual memory system is up, we record
* that this CPU is using the kernel pmap.
*/
kernel_bootstrap_log("PMAP_ACTIVATE_KERNEL");
PMAP_ACTIVATE_KERNEL(master_cpu);
kernel_bootstrap_log("mapping_free_prime");
mapping_free_prime(); /* Load up with temporary mapping blocks */
kernel_bootstrap_log("machine_init");
machine_init();
kernel_bootstrap_log("clock_init");
clock_init();
ledger_init();
/*
* Initialize the IPC, task, and thread subsystems.
*/
#if CONFIG_COALITIONS
kernel_bootstrap_log("coalitions_init");
coalitions_init();
#endif
kernel_bootstrap_log("task_init");
task_init();
kernel_bootstrap_log("thread_init");
thread_init();
#if CONFIG_ATM
/* Initialize the Activity Trace Resource Manager. */
kernel_bootstrap_log("atm_init");
atm_init();
//.........这里部分代码省略.........
开发者ID:androidisbest,项目名称:xnu-1,代码行数:101,代码来源:startup.c
示例7: main
int main(void)
{
network_init();
// network.c
// enc28j60Init();
// enc28j60PhyWrite(PHLCON,0x476);
//CLKPR = (1<<CLKPCE); //Change prescaler
//CLKPR = (1<<CLKPS0); //Use prescaler 2
//clock_prescale_set(clock_div_2);
enc28j60Write(ECOCON, 1 & 0x7);
// enc28j60.c
//Get a 25MHz signal from enc28j60
#ifdef MY_DEBUG
uartInit();
uartSetBaudRate(9600);
rprintfInit(uartSendByte);
#endif
int i;
uip_ipaddr_t ipaddr; // uip.h
// typedef u16_t uip_ip4addr_t[2];
// typedef uip_ip4addr_t uip_ipaddr_t;
struct timer periodic_timer, arp_timer;
clock_init();
timer_set(&periodic_timer, CLOCK_SECOND / 2);
timer_set(&arp_timer, CLOCK_SECOND * 10);
uip_init();
// uip.c
//uip_arp_init();
// uip_arp.c
// must be done or sometimes arp doesn't work
struct uip_eth_addr mac = {UIP_ETHADDR0, UIP_ETHADDR1, UIP_ETHADDR2, UIP_ETHADDR3, UIP_ETHADDR4, UIP_ETHADDR5};
uip_setethaddr(mac);
simple_httpd_init();
#ifdef __DHCPC_H__
dhcpc_init(&mac, 6);
#else
uip_ipaddr(ipaddr, 192,168,0,1); // uip.h
uip_sethostaddr(ipaddr); // uip.h
// #define uip_sethostaddr(addr) uip_ipaddr_copy(uip_hostaddr, (addr))
uip_ipaddr(ipaddr, 192,168,0,1);
uip_setdraddr(ipaddr);
// #define uip_setdraddr(addr) uip_ipaddr_copy(uip_draddr, (addr))
uip_ipaddr(ipaddr, 255,255,255,0);
uip_setnetmask(ipaddr);
// #define uip_setnetmask(addr) uip_ipaddr_copy(uip_netmask, (addr))
#endif /*__DHCPC_H__*/
while(1){
uip_len = network_read();
// uip.c : u16_t uip_len;
// network.c : return ((unt16_t) enc28j60PacketReceive(UIP_BUFSIZE, (uint8_t *)uip_buf));
// enc28j60.c : enc28j60PacketReceive
// uip.c : uint8_t uip_buf[UIP_BUFSIZE+2];
// uipconf.h : UIP_BUFSIZE:300
if(uip_len > 0) {
if(BUF->type == htons(UIP_ETHTYPE_IP)){
#ifdef MY_DEBUG
//rprintf("eth in : uip_len = %d, proto = %d\n", uip_len, uip_buf[23]);
//debugPrintHexTable(uip_len, uip_buf);
#endif
// struct uip_eth_hdr {
// struct uip_eth_addr dest;
// struct uip_eth_addr src;
// u16_t type;
// };
// struct uip_eth_addr { // Representation of a 48-bit Ethernet address
// u8_t addr[6];
// };
// http://www.netmanias.com/ko/post/blog/5372/ethernet-ip-tcp-ip/packet-header-ethernet-ip-tcp-ip
// UIP_ETHTYPE_IP(0x0800) : IPv4 Packet(ICMP, TCP, UDP)
uip_arp_ipin();
#ifdef MY_DEBUG
//rprintf("ip in : uip_len = %d, proto = %d\n", uip_len, uip_buf[23]);
//debugPrintHexTable(uip_len, uip_buf+14);
#endif
// uip_arp.c
// #define IPBUF ((struct ethip_hdr *)&uip_buf[0])
// struct ethip_hdr {
// struct uip_eth_hdr ethhdr;
// // IP header
// u8_t vhl,
// tos,
// len[2],
// ipid[2],
//.........这里部分代码省略.........
开发者ID:hokim72,项目名称:AVR-Common,代码行数:101,代码来源:uiptest.c
示例8: main
int
main(int argc, char **argv)
{
bool flip_flop = false;
asm ("di");
/* Setup clocks */
CMC = 0x11U; /* Enable XT1, disable X1 */
CSC = 0x80U; /* Start XT1 and HOCO, stop X1 */
CKC = 0x00U;
delay_1sec();
OSMC = 0x00; /* Supply fsub to peripherals, including Interval Timer */
uart0_init();
#if __GNUC__
/* Force linking of custom write() function: */
write(1, NULL, 0);
#endif
/* Setup 12-bit interval timer */
RTCEN = 1; /* Enable 12-bit interval timer and RTC */
ITMK = 1; /* Disable IT interrupt */
ITPR0 = 0; /* Set interrupt priority - highest */
ITPR1 = 0;
ITMC = 0x8FFFU; /* Set maximum period 4096/32768Hz = 1/8 s, and start timer */
ITIF = 0; /* Clear interrupt request flag */
ITMK = 0; /* Enable IT interrupt */
/* asm ("ei"); / * Enable interrupts * / */
/* Disable analog inputs because they can conflict with the SPI buses: */
ADPC = 0x01; /* Configure all analog pins as digital I/O. */
PMC0 &= 0xF0; /* Disable analog inputs. */
clock_init();
/* Initialize Joystick Inputs: */
PM5 |= BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1); /* Set pins as inputs. */
PU5 |= BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1); /* Enable internal pull-up resistors. */
/* Initialize LED outputs: */
#define BIT(n) (1 << (n))
PM12 &= ~BIT(0); /* LED1 */
PM4 &= ~BIT(3); /* LED2 */
PM1 &= ~BIT(6); /* LED3 */
PM1 &= ~BIT(5); /* LED4 */
PM0 &= ~BIT(6); /* LED5 */
PM0 &= ~BIT(5); /* LED6 */
PM3 &= ~BIT(0); /* LED7 */
PM5 &= ~BIT(0); /* LED8 */
#if UIP_CONF_IPV6
#if UIP_CONF_IPV6_RPL
printf(CONTIKI_VERSION_STRING " started with IPV6, RPL" NEWLINE);
#else
printf(CONTIKI_VERSION_STRING " started with IPV6" NEWLINE);
#endif
#else
printf(CONTIKI_VERSION_STRING " started" NEWLINE);
#endif
/* crappy way of remembering and accessing argc/v */
contiki_argc = argc;
contiki_argv = argv;
process_init();
process_start(&etimer_process, NULL);
ctimer_init();
set_rime_addr();
queuebuf_init();
netstack_init();
printf("MAC %s RDC %s NETWORK %s" NEWLINE, NETSTACK_MAC.name, NETSTACK_RDC.name, NETSTACK_NETWORK.name);
#if WITH_UIP6
memcpy(&uip_lladdr.addr, serial_id, 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]);
}
/* make it hardcoded... */
lladdr->state = ADDR_AUTOCONF;
printf("%02x%02x" NEWLINE, lladdr->ipaddr.u8[14], lladdr->ipaddr.u8[15]);
}
#else
process_start(&tcpip_process, NULL);
#endif
serial_line_init();
autostart_start(autostart_processes);
//.........这里部分代码省略.........
开发者ID:ustbgaofan,项目名称:contiki,代码行数:101,代码来源:contiki-main.c
示例9: initialize
/*------Done in a subroutine to keep main routine stack usage small--------*/
void initialize(void)
{
//calibrate_rc_osc_32k(); //CO: Had to comment this out
#ifdef RAVEN_LCD_INTERFACE
/* First rs232 port for Raven 3290 port */
rs232_init(RS232_PORT_0, USART_BAUD_38400,USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);
/* Set input handler for 3290 port */
rs232_set_input(0,raven_lcd_serial_input);
#endif
/* Second rs232 port for debugging */
rs232_init(RS232_PORT_1, USART_BAUD_57600,USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);
/* Redirect stdout to second port */
rs232_redirect_stdout(RS232_PORT_1);
clock_init();
printf_P(PSTR("\r\n*******Booting %s*******\r\n"),CONTIKI_VERSION_STRING);
/* Initialize process subsystem */
process_init();
#ifdef RF230BB
{
/* Start radio and radio receive process */
rf230_init();
sicslowpan_init(sicslowmac_init(&rf230_driver));
// ctimer_init();
// sicslowpan_init(lpp_init(&rf230_driver));
// rime_init(sicslowmac_driver.init(&rf230_driver));
// rime_init(lpp_init(&rf230_driver));
/* Set addresses BEFORE starting tcpip process */
rimeaddr_t addr;
memset(&addr, 0, sizeof(rimeaddr_t));
AVR_ENTER_CRITICAL_REGION();
eeprom_read_block ((void *)&addr.u8, &mac_address, 8);
AVR_LEAVE_CRITICAL_REGION();
memcpy(&uip_lladdr.addr, &addr.u8, 8);
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *)&addr.u8);
rf230_set_channel(24);
rimeaddr_set_node_addr(&addr);
PRINTF("MAC address %x:%x:%x:%x:%x:%x:%x:%x\r\n",addr.u8[0],addr.u8[1],addr.u8[2],addr.u8[3],addr.u8[4],addr.u8[5],addr.u8[6],addr.u8[7]);
// uip_ip6addr(&ipprefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
// uip_netif_addr_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0, AUTOCONF);
// uip_nd6_prefix_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0);
// PRINTF("Prefix %x::/%u\r\n",ipprefix.u16[0],UIP_DEFAULT_PREFIX_LEN);
#if UIP_CONF_ROUTER
rime_init(rime_udp_init(NULL));
uip_router_register(&rimeroute);
#endif
PRINTF("Driver: %s, Channel: %u\r\n", sicslowmac_driver.name, rf230_get_channel());
}
#endif /*RF230BB*/
/* Register initial processes */
procinit_init();
uip_ip6addr_t ipaddr;
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
uip_netif_addr_add(&ipaddr, UIP_DEFAULT_PREFIX_LEN, 0, AUTOCONF);
uip_nd6_prefix_add(&ipaddr, UIP_DEFAULT_PREFIX_LEN, 0);
//Give ourselves a prefix
init_net();
print_local_addresses();
PRINTF("Starting autostart processes");
/* Autostart processes */
autostart_start(autostart_processes);
/*---If using coffee file system create initial web content if necessary---*/
#if COFFEE_FILES
int fa = cfs_open( "/index.html", CFS_READ);
if (fa<0) { //Make some default web content
printf_P(PSTR("No index.html file found, creating upload.html!\r\n"));
printf_P(PSTR("Formatting FLASH file system for coffee..."));
cfs_coffee_format();
printf_P(PSTR("Done!\r\n"));
fa = cfs_open( "/index.html", CFS_WRITE);
int r = cfs_write(fa, &"It works!", 9);
if (r<0) printf_P(PSTR("Can''t create /index.html!\r\n"));
cfs_close(fa);
// fa = cfs_open("upload.html"), CFW_WRITE);
// <html><body><form action="upload.html" enctype="multipart/form-data" method="post"><input name="userfile" type="file" size="50" /><input value="Upload" type="submit" /></form></body></html>
}
#endif
/*--------------------------Announce the configuration---------------------*/
#define ANNOUNCE_BOOT 1 //adds about 400 bytes to program size
#if ANNOUNCE_BOOT
//.........这里部分代码省略.........
开发者ID:gonium,项目名称:octobus,代码行数:101,代码来源:contiki-raven-main.c
示例10: main
int main (void)
{
double batteryLevel;
heaterOn = 0;
//Power on device, check internal battery
powerManagerInit(); // initialise power manager + turn power on
powerOffHeater();
clock_init();
initializeADC();
initializeLedHandler();
RGBOff();
RGBShowColor(Blue);
batteryLevel = readInternalBattery();
//if(batteryLevel < 3.3)
//{
//RGBShowColor(Red);
//_delay_ms(500);
//RGBOff();
//_delay_ms(500);
//RGBShowColor(Red);
//_delay_ms(500);
//
////powerOff();
//
//return 0;
//}
Config32KHzRTC(); //Todo: RTC ook echt om de 1ms en niet wat die nu doet...
initializeRTC();
InitializeDebug();
initializeBluetooth();
/* DHT11 enable */
PORTB.DIRSET = SEN1_EN;
PORTB.OUTSET = SEN1_EN;
/* Sen 2 */
PORTB.DIRSET = SEN2_EN;
PORTB.OUTSET = SEN2_EN;
/* USB status */
PORTC.DIRCLR = USB_STAT;
//initializePWM();
stdout = &mystdout; /* onze eigen stdout gebruiken (usart) */
sei(); /* Interrupts enablen */
PMIC.CTRL |= (PMIC_HILVLEN_bm | PMIC_LOLVLEN_bm); /* Hi en Lo lvl interrupts */
/* BT config */
PORTC.DIRCLR = BT_STAT;
PORTC.DIRSET = BT_KEY;
PORTC.OUTCLR = BT_KEY;
PORTC.DIRSET = BT_EN;
PORTC.OUTSET = BT_EN;
PORTB.DIRSET = HY_EN;
//PORTB.OUTSET = HY_EN;
bluetoothRename("snuffelneusWit");
//usartE0_sendstring("AT+NAMEsnuffelneus6.0");
_delay_ms(2000);
while(1) {
}
}
开发者ID:Snuffelneus,项目名称:firmware,代码行数:81,代码来源:main.c
示例11: main
int
main(int argc, char *argv[])
{
int port = 2344;
const char *config = "sys161.conf";
const char *kernel = NULL;
int usetcp=0;
char *argstr = NULL;
int j, opt;
size_t argsize=0;
int debugwait=0;
int pass_signals=0;
#ifdef USE_TRACE
int profiling=0;
#endif
int use_second_console=0;
const char *second_console = NULL;
unsigned ncpus;
/* This must come absolutely first so msg() can be used. */
console_earlyinit();
if (sizeof(u_int32_t)!=4) {
/*
* Just in case.
*/
msg("sys161 requires sizeof(u_int32_t)==4");
die();
}
while ((opt = mygetopt(argc, argv, "c:f:p:Pst:wk:"))!=-1) {
switch (opt) {
case 'c': config = myoptarg; break;
case 'f':
#ifdef USE_TRACE
set_tracefile(myoptarg);
#endif
break;
case 'p': port = atoi(myoptarg); usetcp=1; break;
case 'P':
#ifdef USE_TRACE
profiling = 1;
#endif
break;
case 's': pass_signals = 1; break;
case 't':
#ifdef USE_TRACE
set_traceflags(myoptarg);
#endif
break;
case 'w': debugwait = 1; break;
case 'k':
use_second_console = 1;
second_console = myoptarg;
break;
default: usage(); break;
}
}
if (myoptind==argc) {
usage();
}
kernel = argv[myoptind++];
for (j=myoptind; j<argc; j++) {
argsize += strlen(argv[j])+1;
}
argstr = malloc(argsize+1);
if (!argstr) {
msg("malloc failed");
die();
}
*argstr = 0;
for (j=myoptind; j<argc; j++) {
strcat(argstr, argv[j]);
if (j<argc-1) strcat(argstr, " ");
}
/* This must come before bus_config in case a network card needs it */
mkdir(".sockets", 0700);
console_init(pass_signals, use_second_console, second_console);
clock_init();
ncpus = bus_config(config);
initstats(ncpus);
cpu_init(ncpus);
if (usetcp) {
gdb_inet_init(port);
}
else {
unlink(".sockets/gdb");
gdb_unix_init(".sockets/gdb");
}
unlink(".sockets/meter");
meter_init(".sockets/meter");
load_kernel(kernel, argstr);
//.........这里部分代码省略.........
开发者ID:alexleigh,项目名称:sys161,代码行数:101,代码来源:main.c
示例12: init_lowlevel
void
init_lowlevel(void)
{
uint8_t i;
unsigned char ds2411_id[6];
/* Second rs232 port for debugging */
rs232_init(RS232_PORT_1, USART_BAUD_38400,
USART_PARITY_NONE | USART_STOP_BITS_1 | USART_DATA_BITS_8);
/* Redirect stdout to second port */
rs232_redirect_stdout(RS232_PORT_1);
/* Clock */
clock_init();
/* rtimers needed for radio cycling */
rtimer_init();
/* Initialize process subsystem */
process_init();
/* etimers must be started before ctimer_init */
process_start(&etimer_process, NULL);
#if RF230BB
ctimer_init();
/* Start radio and radio receive process */
NETSTACK_RADIO.init();
if(ds2411_read(ds2411_id)) { /* if serial available, modify adress in EPROM */
mac_address[0] = 0x02;
mac_address[1] = 0;
mac_address[2] = ds2411_id[0];
mac_address[3] = ds2411_id[1];
mac_address[4] = ds2411_id[2];
mac_address[5] = ds2411_id[3];
mac_address[6] = ds2411_id[4];
mac_address[7] = ds2411_id[5];
}
/* Set addresses BEFORE starting tcpip process */
linkaddr_t addr;
memset(&addr, 0, sizeof(linkaddr_t));
memcpy((void *)&addr.u8, &mac_address, 8);
#if UIP_CONF_IPV6
memcpy(&uip_lladdr.addr, &addr.u8, 8);
#endif /* UIP_CONF_IPV6 */
rf230_set_pan_addr(IEEE802154_PANID, 0, (uint8_t *) & addr.u8);
#ifdef CHANNEL_802_15_4
rf230_set_channel(CHANNEL_802_15_4);
#else /* CHANNEL_802_15_4 */
rf230_set_channel(26);
#endif /* CHANNEL_802_15_4 */
linkaddr_set_node_addr(&addr);
//calibrate_rc_osc_32k(); //CO: Had to comment this out
/* Initialize hardware */
PRINTF("MAC address %x:%x:%x:%x:%x:%x:%x:%x\n", addr.u8[0], addr.u8[1],
addr.u8[2], addr.u8[3], addr.u8[4], addr.u8[5], addr.u8[6],
addr.u8[7]);
/* Initialize stack protocols */
queuebuf_init();
NETSTACK_RDC.init();
NETSTACK_MAC.init();
NETSTACK_NETWORK.init();
#if ANNOUNCE_BOOT
printf_P(PSTR("%s %s, channel %u"), NETSTACK_MAC.name, NETSTACK_RDC.name,
rf230_get_channel());
if(NETSTACK_RDC.channel_check_interval) { //function pointer is zero for sicslowmac
unsigned short tmp;
tmp = CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval == 0 ? 1 :
NETSTACK_RDC.channel_check_interval());
if(tmp < 65535)
printf_P(PSTR(", check rate %u Hz"), tmp);
}
printf_P(PSTR("\n"));
#endif /* ANNOUNCE_BOOT */
#if UIP_CONF_ROUTER
#if ANNOUNCE_BOOT
printf_P(PSTR("Routing Enabled\n"));
#endif /* ANNOUNCE_BOOT */
rime_init(rime_udp_init(NULL));
uip_router_register(&rimeroute);
#endif /* UIP_CONF_ROUTER */
#if UIP_CONF_IPV6
process_start(&tcpip_process, NULL);
#endif /* UIP_CONF_IPV6 */
#else /*RF230BB */
#if UIP_CONF_IPV6
/* mac process must be started before tcpip process! */
//.........这里部分代码省略.........
开发者ID:Mastnest,项目名称:6lbr,代码行数:101,代码来源:contiki-nooliberry-main.c
示例13: main
int
main(int argc, char **argv)
{
/* crappy way of remembering and accessing argc/v */
contiki_argc = argc;
contiki_argv = argv;
/* native under windows is hardcoded to use the first one or two args */
/* for wpcap configuration so this needs to be "removed" from */
/* contiki_args (used by the native-border-router) */
//printf("Cgroups -timer\n");
/*Initalize "hardware".*/
init_timer();
clock_init();
rtimer_init();
//printf("Hello glorious world of cheese\n");
/*
* Hardware initialization done!
*/
process_init();
process_start(&etimer_process, NULL);
ctimer_init();
set_rime_addr();
queuebuf_init();
netstack_init();
//printf("MAC %s RDC %s NETWORK %s\n", NETSTACK_MAC.name, NETSTACK_RDC.name, NETSTACK_NETWORK.name);
printf("Hello Rika, I am cgroups in contiki!\n");
serial_line_init();
autostart_start(autostart_processes);
/* Make standard output unbuffered. */
setvbuf(stdout, (char *)NULL, _IONBF, 0);
select_set_callback(STDIN_FILENO, &stdin_fd);
/*
* This is the scheduler loop.
*/
while(1) {
fd_set fdr;
fd_set fdw;
int maxfd;
int i;
int retval;
struct timeval tv;
retval = process_run();
tv.tv_sec = 0;
tv.tv_usec = retval ? 1 : 1000;
FD_ZERO(&fdr);
FD_ZERO(&fdw);
maxfd = 0;
for(i = 0; i <= select_max; i++) {
if(select_callback[i] != NULL && select_callback[i]->set_fd(&fdr, &fdw)) {
maxfd = i;
}
}
retval = select(maxfd + 1, &fdr, &fdw, NULL, &tv);
if(retval < 0) {
perror("select");
} else if(retval > 0) {
/* timeout => retval == 0 */
for(i = 0; i <= maxfd; i++) {
if(select_callback[i] != NULL) {
select_callback[i]->handle_fd(&fdr, &fdw);
}
}
}
etimer_request_poll();
}
return 0;
}
开发者ID:janerikazhang,项目名称:project,代码行数:88,代码来源:contiki-cgroups-main.c
示例14: main
/*---------------------------------------------------------------------------*/
int
main(void)
{
/*
* Initialize 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);
/*
* Initialize Contiki and our processes.
*/
process_init();
#if WITH_SERIAL_LINE_INPUT
uart1_set_input(serial_line_input_byte);
serial_line_init();
#endif
process_start(&etimer_process, NULL);
ctimer_init();
rtimer_init();
netstack_init();
set_rime_addr();
PRINTF("ACK enable=%u %s %s, channel check rate=%luHz, check interval %ums, clock second=%u, radio channel %u\r\n",
ST_RadioAutoAckEnabled(), NETSTACK_MAC.name, NETSTACK_RDC.name,
CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0? 1:
NETSTACK_RDC.channel_check_interval()), NETSTACK_RDC.channel_check_interval(), CLOCK_SECOND,
RF_CHANNEL);
#if !UIP_CONF_IPV6
ST_RadioEnableAutoAck(FALSE); // Because frames are not 802.15.4 compatible.
ST_RadioEnableAddressFiltering(FALSE);
#endif
ST_RadioEnableAutoAck(TRUE);
procinit_init();
energest_init();
ENERGEST_ON(ENERGEST_TYPE_CPU);
autostart_start(autostart_processes);
watchdog_start();
while(1){
int r;
do {
/* Reset watchdog. */
watchdog_periodic();
r = process_run();
} while(r > 0);
ENERGEST_OFF(ENERGEST_TYPE_CPU);
//watchdog_stop();
ENERGEST_ON(ENERGEST_TYPE_LPM);
/* Go to idle mode. */
halSleepWithOptions(SLEEPMODE_IDLE,0);
/* We are awake. */
//watchdog_start();
ENERGEST_OFF(ENERGEST_TYPE_LPM);
ENERGEST_ON(ENERGEST_TYPE_CPU);
}
}
开发者ID:chianhla,项目名称:sandbox,代码行数:92,代码来源:contiki-main.c
示例15: dram_init
//.........这里部分代码省略.........
#define ESDHC_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_HIGH | \
PAD_CTL_DSE_20ohm | PAD_CTL_OBE_IBE_ENABLE)
struct fsl_esdhc_cfg esdhc_cfg[1] = {
{ESDHC1_BASE_ADDR},
};
int board_mmc_getcd(struct mmc *mmc)
{
/* eSDHC1 is always present */
return 1;
}
int board_mmc_init(bd_t *bis)
{
static const iomux_v3_cfg_t esdhc1_pads[] = {
NEW_PAD_CTRL(VF610_PAD_PTA24__ESDHC1_CLK, ESDHC_PAD_CTRL),
NEW_PAD_CTRL(VF610_PAD_PTA25__ESDHC1_CMD, ESDHC_PAD_CTRL),
NEW_PAD_CTRL(VF610_PAD_PTA26__ESDHC1_DAT0, ESDHC_PAD_CTRL),
NEW_PAD_CTRL(VF610_PAD_PTA27__ESDHC1_DAT1, ESDHC_PAD_CTRL),
NEW_PAD_CTRL(VF610_PAD_PTA28__ESDHC1_DAT2, ESDHC_PAD_CTRL),
NEW_PAD_CTRL(VF610_PAD_PTA29__ESDHC1_DAT3, ESDHC_PAD_CTRL),
};
esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
imx_iomux_v3_setup_multiple_pads(
esdhc1_pads, ARRAY_SIZE(esdhc1_pads));
return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
}
static void clock_init(void)
{
struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
struct anadig_reg *anadig = (struct anadig_reg *)ANADIG_BASE_ADDR;
clrsetbits_le32(&ccm->ccgr0, CCM_REG_CTRL_MASK,
CCM_CCGR0_UART1_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr1, CCM_REG_CTRL_MASK,
CCM_CCGR1_PIT_CTRL_MASK | CCM_CCGR1_WDOGA5_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr2, CCM_REG_CTRL_MASK,
CCM_CCGR2_IOMUXC_CTRL_MASK | CCM_CCGR2_PORTA_CTRL_MASK |
CCM_CCGR2_PORTB_CTRL_MASK | CCM_CCGR2_PORTC_CTRL_MASK |
CCM_CCGR2_PORTD_CTRL_MASK | CCM_CCGR2_PORTE_CTRL_MASK |
CCM_CCGR2_QSPI0_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr3, CCM_REG_CTRL_MASK,
CCM_CCGR3_ANADIG_CTRL_MASK | CCM_CCGR3_SCSC_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr4, CCM_REG_CTRL_MASK,
CCM_CCGR4_WKUP_CTRL_MASK | CCM_CCGR4_CCM_CTRL_MASK |
CCM_CCGR4_GPC_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr6, CCM_REG_CTRL_MASK,
CCM_CCGR6_OCOTP_CTRL_MASK | CCM_CCGR6_DDRMC_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr7, CCM_REG_CTRL_MASK,
CCM_CCGR7_SDHC1_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr9, CCM_REG_CTRL_MASK,
CCM_CCGR9_FEC0_CTRL_MASK | CCM_CCGR9_FEC1_CTRL_MASK);
clrsetbits_le32(&ccm->ccgr10, CCM_REG_CTRL_MASK,
CCM_CCGR10_NFC_CTRL_MASK | CCM_CCGR10_I2C2_CTRL_MASK);
clrsetbits_le32(&anadig->pll2_ctrl, ANADIG_PLL2_CTRL_POWERDOWN,
ANADIG_PLL2_CTRL_ENABLE | ANADIG_PLL2_CTRL_DIV_SELECT);
clrsetbits_le32(&anadig->pll1_ctrl, ANADIG_PLL1_CTRL_POWERDOWN,
ANADIG_PLL1_CTRL_ENABLE | ANADIG_PLL1_CTRL_DIV_SELECT);
开发者ID:01hyang,项目名称:u-boot,代码行数:66,代码来源:pcm052.c
示例16: main
/*---------------------------------------------------------------------------*/
int
main(void)
{
EEPROM_main();
int i;
uip_ipaddr_t ipaddr;
struct timer periodic_timer, arp_timer;
memcpy (&uip_ethaddr.addr[0], &eeprom.MAC[0], 6);
AVR_init();
egpio_init();
clock_init();
mbuf_init();
adlc_init();
GICR = (1 << INT0);
timer_set(&periodic_timer, CLOCK_SECOND / 2);
timer_set(&arp_timer, CLOCK_SECOND * 10);
nic_init();
uip_ipaddr(ipaddr, eeprom.IPAddr[0],eeprom.IPAddr[1],eeprom.IPAddr[2],eeprom.IPAddr[3]);
uip_sethostaddr(ipaddr);
uip_ipaddr(ipaddr, eeprom.Gateway[0],eeprom.Gateway[1],eeprom.Gateway[2],eeprom.Gateway[3]);
uip_setdraddr(ipaddr);
uip_ipaddr(ipaddr, eeprom.Subnet[0],eeprom.Subnet[1],eeprom.Subnet[2],eeprom.Subnet[3]);
uip_setnetmask(ipaddr);
telnetd_init();
aun_init();
internet_init();
egpio_write (EGPIO_STATUS_GREEN);
while(1) {
// check the econet for complete packets
adlc_poller();
aun_poller ();
uip_len = nic_poll();
if(uip_len > 0) {
if(BUF->type == htons(UIP_ETHTYPE_IP)) {
uip_arp_ipin();
uip_input();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
maybe_send();
} else if(BUF->type == htons(UIP_ETHTYPE_ARP)) {
uip_arp_arpin();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
nic_send(NULL);
}
}
} else if(timer_expired(&periodic_timer)) {
timer_reset(&periodic_timer);
for(i = 0; i < UIP_CONNS; i++) {
uip_periodic(i);
maybe_send();
}
#if UIP_UDP
for(i = 0; i < UIP_UDP_CONNS; i++) {
uip_udp_periodic(i);
maybe_send();
}
#endif /* UIP_UDP */
/* Call the ARP timer function every 10 seconds. */
if(timer_expired(&arp_timer)) {
timer_reset(&arp_timer);
uip_arp_timer();
}
}
}
}
开发者ID:BackupTheBerlios,项目名称:ecobridge,代码行数:88,代码来源:main.c
示例17: main
/*--------------------------------------------------------------------------*/
int
main(int argc, char **argv)
{
/*
* Initalize hardware.
*/
msp430_cpu_init();
clock_init();
leds_init();
leds_on(LEDS_RED);
uart1_init(BAUD2UBR(115200)); /* Must come before first printf */
#if WITH_UIP
slip_arch_init(BAUD2UBR(115200));
#endif /* WITH_UIP */
leds_on(LEDS_GREEN);
/* xmem_init(); */
rtimer_init();
lcd_init();
PRINTF(CONTIKI_VERSION_STRING "\n");
/*
* Hardware initialization done!
*/
leds_on(LEDS_RED);
/* Restore node id if such has been stored in external mem */
// node_id_restore();
#ifdef NODEID
node_id = NODEID;
#ifdef BURN_NODEID
flash_setup();
flash_clear(0x1800);
flash_write(0x1800, node_id);
flash_done();
#endif /* BURN_NODEID */
#endif /* NODE_ID */
if(node_id == 0) {
node_id = *((unsigned short *)0x1800);
}
memset(node_mac, 0, sizeof(node_mac));
node_mac[6] = node_id >> 8;
node_mac[7] = node_id & 0xff;
/* for setting "hardcoded" IEEE 802.15.4 MAC addresses */
#ifdef MAC_1
{
uint8_t ieee[] = { MAC_1, MAC_2, MAC_3, MAC_4, MAC_5, MAC_6, MAC_7, MAC_8 };
memcpy(node_mac, ieee, sizeof(uip_lladdr.addr));
}
#endif
/*
* Initialize Contiki and our processes.
*/
process_init();
process_start(&etimer_process, NULL);
ctimer_init();
set_rime_addr();
cc2420_init();
{
uint8_t longaddr[8];
uint16_t shortaddr;
shortaddr = (rimeaddr_node_addr.u8[0] << 8) +
rimeaddr_node_addr.u8[1];
memset(longa
|
请发表评论