I'd need a clarification, I was scanning the uart.c implementation of the letmecreateio library. Was wondering if this function is actually using an ISR. Diving a little it seems that contiki porting for PIC32MX470 is partial yet, the macro ISR(v) defined in pic32_irq.h does actually support the PIC32**MX470** vector table or not?
In this case I would not mind to reimplement a receive function using an ISR.
int uart_receive(uint8_t *buffer, uint32_t count)
fprintf(stderr, "uart: USE_UART_PORT3 not defined\n");
uint32_t i = 0;
int data = -1;
start = RTIMER_NOW();
for(i = 0; i < count; i++)
while((data = ringbuf_get(&uart_ring_buffer)) < 0)
if(current_timeout == NO_TIMEOUT)
if(RTIMER_CLOCK_LT(start + current_timeout, RTIMER_NOW()))
fprintf(stderr, "uart: Read timed out\n");
buffer[i] = (uint8_t)data;