MODSERIAL with support for more devices. Added support for LPC4330

Dependents:   HC05_AT_mode GPS_U-blox_NEO-6M_Test_Code GPS_U-blox_NEO-6M_Code UbloxGPSWithThread ... more

Fork of MODSERIAL by Erik -

Committer:
AjK
Date:
Sat Feb 12 08:59:03 2011 +0000
Revision:
16:8b1dbf4cce4e
Parent:
15:a1d9e745d71e
Child:
17:6c9b57c14868
1.16 See ChangLog.c

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AjK 1:b7e435fbfe8e 1 /* $Id:$
AjK 2:b936b4acbd92 2
AjK 16:8b1dbf4cce4e 3 1.16 - 12 Feb 2011
AjK 16:8b1dbf4cce4e 4
AjK 16:8b1dbf4cce4e 5 * Missed one, doh!
AjK 16:8b1dbf4cce4e 6
AjK 15:a1d9e745d71e 7 1.15 - 12 Feb 2011
AjK 15:a1d9e745d71e 8
AjK 15:a1d9e745d71e 9 * Fixed some typos.
AjK 15:a1d9e745d71e 10
AjK 14:3c3b87617bfe 11 1.14 - 7 Feb 2011
AjK 14:3c3b87617bfe 12
AjK 14:3c3b87617bfe 13 * Fixed a bug in __putc() that caused the output buffer pointer to
AjK 14:3c3b87617bfe 14 become corrupted.
AjK 14:3c3b87617bfe 15
AjK 13:70bb7c1769fa 16 1.13 - 20/01/2011
AjK 13:70bb7c1769fa 17
AjK 13:70bb7c1769fa 18 * Added extra documentation.
AjK 13:70bb7c1769fa 19 * Fixed some typos.
AjK 13:70bb7c1769fa 20
AjK 12:8c7394e2ae7f 21 1.12 - 20/01/2011
AjK 12:8c7394e2ae7f 22
AjK 12:8c7394e2ae7f 23 * Added new "autoDetectChar()" function. To use:-
AjK 12:8c7394e2ae7f 24 1st: Add a callback to invoke when the char is detected:-
AjK 12:8c7394e2ae7f 25 .attach(&detectedChar, MODSERIAL::RxAutoDetect);
AjK 12:8c7394e2ae7f 26 2nd: Send the char to detect.
AjK 12:8c7394e2ae7f 27 .autoDectectChar('\n');
AjK 12:8c7394e2ae7f 28 Whenever that char goes into the RX buffer your callback will be invoked.
AjK 12:8c7394e2ae7f 29 Added example2.cpp to demo a simple messaging system using this auto feature.
AjK 12:8c7394e2ae7f 30
AjK 12:8c7394e2ae7f 31
AjK 11:a93a62eeeb9d 32 1.11 - 23/11/2010
AjK 11:a93a62eeeb9d 33
AjK 11:a93a62eeeb9d 34 * Fixed a minor issue with 1.10 missed an alteration of name change.
AjK 11:a93a62eeeb9d 35
AjK 10:725fe81aa9ff 36 1.10 - 23/11/2010
AjK 10:725fe81aa9ff 37
AjK 10:725fe81aa9ff 38 * Reanme the DMA callback from attach_dma_complete() to attach_dmaSendComplete()
AjK 10:725fe81aa9ff 39
AjK 9:b3cdae80e7a9 40 1.9 - 23/11/2010
AjK 9:b3cdae80e7a9 41
AjK 9:b3cdae80e7a9 42 * Added support for DMA sending of characters. Required is
AjK 9:b3cdae80e7a9 43 the MODDMA library module:-
AjK 9:b3cdae80e7a9 44 http://mbed.org/users/AjK/libraries/MODDMA/latest
AjK 9:b3cdae80e7a9 45 See example_dma.cpp for more information.
AjK 9:b3cdae80e7a9 46
AjK 8:775f860e94d3 47 1.8 - 22/11/2010
AjK 8:775f860e94d3 48
AjK 8:775f860e94d3 49 * Added code so that if a buffer is set to zero length then
AjK 8:775f860e94d3 50 MODSERIAL defaults to just using the FIFO for that stream
AjK 8:775f860e94d3 51 thus making the library "fall back" to teh same operation
AjK 8:775f860e94d3 52 that the Mbed Serial library performs.
AjK 8:775f860e94d3 53 * Removed dmaSend() function that should have been removed
AjK 8:775f860e94d3 54 at 1.7
AjK 8:775f860e94d3 55
AjK 7:ffa4a7cb7f8d 56 1.7 - 21/11/2010
AjK 7:ffa4a7cb7f8d 57
AjK 7:ffa4a7cb7f8d 58 * Remove the DMA enum from MODSERIAL.h as it's not currently
AjK 7:ffa4a7cb7f8d 59 ready for release.
AjK 7:ffa4a7cb7f8d 60 * Added page doxygen comments.
AjK 7:ffa4a7cb7f8d 61
AjK 6:c8f77fe1cc10 62 1.6 - 21/11/2010
AjK 6:c8f77fe1cc10 63
AjK 6:c8f77fe1cc10 64 * Version 1.5 solved a blocking problem on putc() when called
AjK 6:c8f77fe1cc10 65 from another ISR. However, isr_tx() invokes a callback of it's
AjK 6:c8f77fe1cc10 66 own when a byte is tranferred from TX buffer to TX FIFO. User
AjK 6:c8f77fe1cc10 67 programs may interpret that as an IRQ callback. That's an ISR
AjK 6:c8f77fe1cc10 68 call from within an existing ISR which is not good. So the
AjK 6:c8f77fe1cc10 69 TxIrq callback from isr_tx is now conditional. It will only
AjK 6:c8f77fe1cc10 70 be called when isr_tx() is actually within it's own ISR and
AjK 6:c8f77fe1cc10 71 not when called from alternate ISR handlers.
AjK 6:c8f77fe1cc10 72
AjK 5:8365c4cf8f33 73 1.5 - 21/11/2010
AjK 5:8365c4cf8f33 74
AjK 5:8365c4cf8f33 75 * Calling putc() (or any derived function that uses it like
AjK 5:8365c4cf8f33 76 printf()) while inside an interrupt service routine can
AjK 5:8365c4cf8f33 77 cause the system to lock up if the TX buffer is full. This
AjK 5:8365c4cf8f33 78 is because bytes are only transferred from the TX buffer to
AjK 5:8365c4cf8f33 79 the TX FIFO via the TX ISR. If we are, say in an RX ISR already,
AjK 5:8365c4cf8f33 80 then the TX ISR will never trigger. The TX buffer stays full and
AjK 5:8365c4cf8f33 81 there is never space to putc() the byte. So, while putc() blocks
AjK 5:8365c4cf8f33 82 waiting for space it calls isr_tx() to ensure if TX FIFO space
AjK 5:8365c4cf8f33 83 becomes available it will move bytes from the TX buffer to TX
AjK 5:8365c4cf8f33 84 FIFO thus removing the blocking condition within putc().
AjK 5:8365c4cf8f33 85
AjK 4:28de979b77cf 86 1.4 - 21/11/2010
AjK 4:28de979b77cf 87
AjK 4:28de979b77cf 88 * Removed all the new DMA code. I wish mbed.org had proper SVN
AjK 4:28de979b77cf 89 versioning, I'm use to working in HEAD and BRANCHES after I've
AjK 4:28de979b77cf 90 released a project. Getting bug reports in current releases
AjK 4:28de979b77cf 91 while trying to dev new code is hard to manage without source
AjK 4:28de979b77cf 92 control of some type!
AjK 4:28de979b77cf 93
AjK 2:b936b4acbd92 94 1.3 - 21/11/2010
AjK 2:b936b4acbd92 95
AjK 2:b936b4acbd92 96 * Fixed a macro problem with txIsBusy()
AjK 2:b936b4acbd92 97 * Started adding code to use "block data" sending using DMA
AjK 3:0f10f536456e 98 * Removed #include "IOMACROS.h"
AjK 1:b7e435fbfe8e 99
AjK 2:b936b4acbd92 100 1.2 - 21/11/2010
AjK 2:b936b4acbd92 101
AjK 2:b936b4acbd92 102 * Removed unsed variables from flushBuffer()
AjK 2:b936b4acbd92 103 * Fixed a bug where both RX AND TX fifos are cleared/reset
AjK 2:b936b4acbd92 104 when just TX OR RX should be cleared.
AjK 2:b936b4acbd92 105 * Fixed a bug that cleared IIR when in fact it should be left
AjK 2:b936b4acbd92 106 alone so that any pending interrupt after flush is handled.
AjK 2:b936b4acbd92 107 * Merged setBase() into init() as it wasn't required anywhere else.
AjK 2:b936b4acbd92 108 * Changed init() to enforce _uidx is set by Serial to define the _base
AjK 2:b936b4acbd92 109 address of the Uart in use.
AjK 2:b936b4acbd92 110
AjK 1:b7e435fbfe8e 111 1.1 - 20/11/2010
AjK 1:b7e435fbfe8e 112
AjK 1:b7e435fbfe8e 113 * Added this file
AjK 1:b7e435fbfe8e 114 * Removed cruft from GETC.cpp
AjK 1:b7e435fbfe8e 115 * "teh" should be "the", why do my fingers do that?
AjK 1:b7e435fbfe8e 116
AjK 1:b7e435fbfe8e 117 1.0 - 20/11/2010
AjK 1:b7e435fbfe8e 118
AjK 1:b7e435fbfe8e 119 * First release.
AjK 1:b7e435fbfe8e 120
AjK 1:b7e435fbfe8e 121 */