USBUART - IRQ
Dependents: MPU9250AHRS_UBSUART-IRQ
Fork of MODSERIAL by
Diff: ChangeLog.c
- Revision:
- 5:8365c4cf8f33
- Parent:
- 4:28de979b77cf
- Child:
- 6:c8f77fe1cc10
diff -r 28de979b77cf -r 8365c4cf8f33 ChangeLog.c --- a/ChangeLog.c Sun Nov 21 14:44:02 2010 +0000 +++ b/ChangeLog.c Sun Nov 21 16:08:36 2010 +0000 @@ -1,5 +1,18 @@ /* $Id:$ +1.5 - 21/11/2010 + + * Calling putc() (or any derived function that uses it like + printf()) while inside an interrupt service routine can + cause the system to lock up if the TX buffer is full. This + is because bytes are only transferred from the TX buffer to + the TX FIFO via the TX ISR. If we are, say in an RX ISR already, + then the TX ISR will never trigger. The TX buffer stays full and + there is never space to putc() the byte. So, while putc() blocks + waiting for space it calls isr_tx() to ensure if TX FIFO space + becomes available it will move bytes from the TX buffer to TX + FIFO thus removing the blocking condition within putc(). + 1.4 - 21/11/2010 * Removed all the new DMA code. I wish mbed.org had proper SVN