cyg_uint32 usart2_isr(cyg_vector_t vector,cyg_addrword_t data) { volatile serial_msg *smsgs = (serial_msg *) data; //diag_printf("ISR\n"); cyg_interrupt_mask(vector); cyg_interrupt_acknowledge(vector); if((usart2_port[5] & 0x02) == 0x02) { //diag_printf("Sending\n"); usart2_port[7] = g_sendStr[transIndex]; transIndex++; diag_printf("TI: %d\n",transIndex); cyg_interrupt_unmask(vector); usart2_port[3] = 0x2; return CYG_ISR_HANDLED; } else if((usart2_port[5] & 0x01) == 0x01) { //diag_printf("Receiving\n"); smsgs->fromISR = usart2_port[6]; return CYG_ISR_CALL_DSR; }