Publishing (forking) it from Deurklink to Allseas-PHALCON-system.

Fork of MODSERIAL by Andy K

Committer:
AjK
Date:
Mon Nov 22 09:19:50 2010 +0000
Revision:
7:ffa4a7cb7f8d
Parent:
6:c8f77fe1cc10
Child:
8:775f860e94d3
1.7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AjK 1:b7e435fbfe8e 1 /* $Id:$
AjK 2:b936b4acbd92 2
AjK 7:ffa4a7cb7f8d 3 1.7 - 21/11/2010
AjK 7:ffa4a7cb7f8d 4
AjK 7:ffa4a7cb7f8d 5 * Remove the DMA enum from MODSERIAL.h as it's not currently
AjK 7:ffa4a7cb7f8d 6 ready for release.
AjK 7:ffa4a7cb7f8d 7 * Added page doxygen comments.
AjK 7:ffa4a7cb7f8d 8
AjK 6:c8f77fe1cc10 9 1.6 - 21/11/2010
AjK 6:c8f77fe1cc10 10
AjK 6:c8f77fe1cc10 11 * Version 1.5 solved a blocking problem on putc() when called
AjK 6:c8f77fe1cc10 12 from another ISR. However, isr_tx() invokes a callback of it's
AjK 6:c8f77fe1cc10 13 own when a byte is tranferred from TX buffer to TX FIFO. User
AjK 6:c8f77fe1cc10 14 programs may interpret that as an IRQ callback. That's an ISR
AjK 6:c8f77fe1cc10 15 call from within an existing ISR which is not good. So the
AjK 6:c8f77fe1cc10 16 TxIrq callback from isr_tx is now conditional. It will only
AjK 6:c8f77fe1cc10 17 be called when isr_tx() is actually within it's own ISR and
AjK 6:c8f77fe1cc10 18 not when called from alternate ISR handlers.
AjK 6:c8f77fe1cc10 19
AjK 5:8365c4cf8f33 20 1.5 - 21/11/2010
AjK 5:8365c4cf8f33 21
AjK 5:8365c4cf8f33 22 * Calling putc() (or any derived function that uses it like
AjK 5:8365c4cf8f33 23 printf()) while inside an interrupt service routine can
AjK 5:8365c4cf8f33 24 cause the system to lock up if the TX buffer is full. This
AjK 5:8365c4cf8f33 25 is because bytes are only transferred from the TX buffer to
AjK 5:8365c4cf8f33 26 the TX FIFO via the TX ISR. If we are, say in an RX ISR already,
AjK 5:8365c4cf8f33 27 then the TX ISR will never trigger. The TX buffer stays full and
AjK 5:8365c4cf8f33 28 there is never space to putc() the byte. So, while putc() blocks
AjK 5:8365c4cf8f33 29 waiting for space it calls isr_tx() to ensure if TX FIFO space
AjK 5:8365c4cf8f33 30 becomes available it will move bytes from the TX buffer to TX
AjK 5:8365c4cf8f33 31 FIFO thus removing the blocking condition within putc().
AjK 5:8365c4cf8f33 32
AjK 4:28de979b77cf 33 1.4 - 21/11/2010
AjK 4:28de979b77cf 34
AjK 4:28de979b77cf 35 * Removed all the new DMA code. I wish mbed.org had proper SVN
AjK 4:28de979b77cf 36 versioning, I'm use to working in HEAD and BRANCHES after I've
AjK 4:28de979b77cf 37 released a project. Getting bug reports in current releases
AjK 4:28de979b77cf 38 while trying to dev new code is hard to manage without source
AjK 4:28de979b77cf 39 control of some type!
AjK 4:28de979b77cf 40
AjK 2:b936b4acbd92 41 1.3 - 21/11/2010
AjK 2:b936b4acbd92 42
AjK 2:b936b4acbd92 43 * Fixed a macro problem with txIsBusy()
AjK 2:b936b4acbd92 44 * Started adding code to use "block data" sending using DMA
AjK 3:0f10f536456e 45 * Removed #include "IOMACROS.h"
AjK 1:b7e435fbfe8e 46
AjK 2:b936b4acbd92 47 1.2 - 21/11/2010
AjK 2:b936b4acbd92 48
AjK 2:b936b4acbd92 49 * Removed unsed variables from flushBuffer()
AjK 2:b936b4acbd92 50 * Fixed a bug where both RX AND TX fifos are cleared/reset
AjK 2:b936b4acbd92 51 when just TX OR RX should be cleared.
AjK 2:b936b4acbd92 52 * Fixed a bug that cleared IIR when in fact it should be left
AjK 2:b936b4acbd92 53 alone so that any pending interrupt after flush is handled.
AjK 2:b936b4acbd92 54 * Merged setBase() into init() as it wasn't required anywhere else.
AjK 2:b936b4acbd92 55 * Changed init() to enforce _uidx is set by Serial to define the _base
AjK 2:b936b4acbd92 56 address of the Uart in use.
AjK 2:b936b4acbd92 57
AjK 1:b7e435fbfe8e 58 1.1 - 20/11/2010
AjK 1:b7e435fbfe8e 59
AjK 1:b7e435fbfe8e 60 * Added this file
AjK 1:b7e435fbfe8e 61 * Removed cruft from GETC.cpp
AjK 1:b7e435fbfe8e 62 * "teh" should be "the", why do my fingers do that?
AjK 1:b7e435fbfe8e 63
AjK 1:b7e435fbfe8e 64 1.0 - 20/11/2010
AjK 1:b7e435fbfe8e 65
AjK 1:b7e435fbfe8e 66 * First release.
AjK 1:b7e435fbfe8e 67
AjK 1:b7e435fbfe8e 68 */