X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=main.c;h=2120a62451643efd35dcccad963c6468f79dcffe;hp=e9454c405bf6902bff2a1ae3dd67f64d9f45119f;hb=701d7cbf7d30c49e1d21943ce47d00bf250c70e7;hpb=9a9b64112aee5ab26398b46cb13b7e49c292a355 diff --git a/main.c b/main.c index e9454c4..2120a62 100644 --- a/main.c +++ b/main.c @@ -114,6 +114,8 @@ static void hexdump(const char *title, const void *buf, unsigned int len) static int parse_xmit_status(struct xbee_ctx *ctx, struct xbee_xmit_status_hdr *frame, unsigned len) { + (void)len; + if (ctx == NULL) { printf_P(PSTR("no context\r\n")); return -1; @@ -144,7 +146,7 @@ static int dump_atcmd(struct xbee_ctx *ctx, struct xbee_atresp_hdr *frame, unsigned len) { char atcmd_str[3]; - struct xbee_atcmd_pgm *cmd_pgm; + const struct xbee_atcmd *cmd_pgm; struct xbee_atcmd cmd; union { uint8_t u8; @@ -228,9 +230,13 @@ static int dump_atcmd(struct xbee_ctx *ctx, struct xbee_atresp_hdr *frame, int xbee_recv_data(struct xbee_recv_hdr *recvframe, unsigned len) { - int datalen = len - sizeof(*recvframe); + unsigned int datalen; struct rc_proto_hdr *rch = (struct rc_proto_hdr *) &recvframe->data; + if (len < sizeof(*recvframe)) + return -1; + + datalen = len - sizeof(*recvframe); if (datalen < sizeof(struct rc_proto_hdr)) return -1; @@ -486,6 +492,9 @@ static void evt_timeout(struct callout_manager *cm, struct callout *clt, { struct xbee_ctx *ctx = arg; + (void)cm; + (void)clt; + printf_P(PSTR("Timeout\r\n")); /* restart command line */ @@ -508,7 +517,6 @@ void xbee_unload_timeout(struct xbee_ctx *ctx) void bootloader(void) { -#ifndef USE_USB #define BOOTLOADER_ADDR 0x3f000 if (pgm_read_byte_far(BOOTLOADER_ADDR) == 0xff) { printf_P(PSTR("Bootloader is not present\r\n")); @@ -520,23 +528,18 @@ void bootloader(void) TIMSK1 = 0; TIMSK2 = 0; TIMSK3 = 0; - TIMSK4 = 0; - TIMSK5 = 0; EIMSK = 0; UCSR0B = 0; UCSR1B = 0; - UCSR2B = 0; - UCSR3B = 0; SPCR = 0; TWCR = 0; ACSR = 0; ADCSRA = 0; - EIND = 1; - __asm__ __volatile__ ("ldi r31,0xf8\n"); - __asm__ __volatile__ ("ldi r30,0x00\n"); - __asm__ __volatile__ ("eijmp\n"); -#endif + /* XXX */ + /* __asm__ __volatile__ ("ldi r31,0xf8\n"); */ + /* __asm__ __volatile__ ("ldi r30,0x00\n"); */ + /* __asm__ __volatile__ ("eijmp\n"); */ } void xbee_mainloop(void) @@ -572,12 +575,6 @@ void xbee_mainloop(void) cmdline_poll(); xbee_proto_rx(xbee_dev); } - -#ifdef USE_USB - CDC_Device_USBTask(&VirtualSerial1_CDC_Interface); - CDC_Device_USBTask(&VirtualSerial2_CDC_Interface); - USB_USBTask(); -#endif } } @@ -592,19 +589,17 @@ static void do_led_blink(struct callout_manager *cm, { static uint8_t a = 0; -#ifdef USE_USB - if (a & 1) - LEDs_SetAllLEDs(0); - else - LEDs_SetAllLEDs(0xff); -#else + (void)cm; + (void)clt; + (void)dummy; + /* XXX */ -#endif a++; } static void increment_ms(void *dummy) { + (void)dummy; global_ms++; } @@ -627,14 +622,8 @@ int main(void) int8_t err; struct xbee_dev dev; -#ifdef USE_USB - SetupHardware(); - - LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); -#else uart_init(); uart_register_rx_event(CMDLINE_UART, emergency); -#endif fdevopen(cmdline_dev_send, cmdline_dev_recv); xbee_file = fdevopen(xbee_dev_send, xbee_dev_recv); @@ -647,11 +636,10 @@ int main(void) LED_PRIO); cmdline_init(); spi_servo_init(); -#ifndef USE_USB - /* in usb mode, it's done in usb callback */ + printf_P(PSTR("\r\n")); rdline_newline(&xbeeboard.rdl, xbeeboard.prompt); -#endif + callout_manager_init(&cm, get_time_ms); callout_reset(&cm, &t1, 500, PERIODICAL, do_led_blink, NULL);