void UartIrqHandler(void* parameter, VM_DCL_EVENT event, VM_DCL_HANDLE device_handle) { if(event == VM_UART_READY_TO_READ) { char data[SERIAL_BUFFER_SIZE]; int i; VM_DCL_STATUS status; VM_DCL_BUFF_LEN returned_len; status = vm_dcl_read(device_handle,(VM_DCL_BUFF*)data,SERIAL_BUFFER_SIZE,&returned_len,vm_dcl_get_ownerid()); if(status<VM_DCL_STATUS_OK) { vm_log_info((char*)"read failed"); } if(device_handle == g_APinDescription[0].ulHandle) { for(i=0;i<returned_len;i++) { Serial1._rx_buffer->store_char(data[i]); } } else { for(i=0;i<returned_len;i++) { Serial._rx_buffer->store_char(data[i]); } } } else { } }
void __retarget_irq_handler(void* parameter, VM_DCL_EVENT event, VM_DCL_HANDLE device_handle) { if(event == VM_DCL_SIO_UART_READY_TO_READ) { char data[SERIAL_BUFFER_SIZE]; int i; VM_DCL_STATUS status; VM_DCL_BUFFER_LENGTH returned_len = 0; status = vm_dcl_read(device_handle, (VM_DCL_BUFFER *)data, SERIAL_BUFFER_SIZE, &returned_len, g_owner_id); if(status < VM_DCL_STATUS_OK) { // vm_log_info((char*)"read failed"); } else if (returned_len) { for (i = 0; i < returned_len; i++) { sj_prompt_process_char(data[i]); } } } else { } }
void __retarget_irq_handler(void* parameter, VM_DCL_EVENT event, VM_DCL_HANDLE device_handle) { if(event == VM_DCL_SIO_UART_READY_TO_READ) { char data[SERIAL_BUFFER_SIZE]; int i; VM_DCL_STATUS status; VM_DCL_BUFFER_LENGTH returned_len = 0; status = vm_dcl_read(device_handle, (VM_DCL_BUFFER *)data, SERIAL_BUFFER_SIZE, &returned_len, g_owner_id); if(status < VM_DCL_STATUS_OK) { // vm_log_info((char*)"read failed"); } else if (returned_len) { if (retarget_rx_buffer_head == retarget_rx_buffer_tail) { vm_signal_post(retarget_rx_signal_id); } for (i = 0; i < returned_len; i++) { retarget_rx_buffer[retarget_rx_buffer_head % SERIAL_BUFFER_SIZE] = data[i]; retarget_rx_buffer_head++; if ((unsigned)(retarget_rx_buffer_head - retarget_rx_buffer_tail) > SERIAL_BUFFER_SIZE) { retarget_rx_buffer_tail = retarget_rx_buffer_head - SERIAL_BUFFER_SIZE; } } } } else { } }