Fork of the MODSERIAL library by Erik Olieman.

Dependents:   trs_master

Fork of MODSERIAL by Erik -

ChangeLog.c

Committer:
AjK
Date:
2011-03-08
Revision:
17:6c9b57c14868
Parent:
16:8b1dbf4cce4e
Child:
18:21ef26402365

File content as of revision 17:6c9b57c14868:

/* $Id:$

1.17   08/Mar/2011
       Fixed a memory leak in the DMA code.
       
1.16 - 12 Feb 2011
    
    * Missed one, doh!

1.15 - 12 Feb 2011
    
    * Fixed some typos.
    
1.14 - 7 Feb 2011

    * Fixed a bug in __putc() that caused the output buffer pointer to 
      become corrupted.

1.13 - 20/01/2011

    * Added extra documentation.
    * Fixed some typos.
    
1.12 - 20/01/2011

    * Added new "autoDetectChar()" function. To use:-
      1st: Add a callback to invoke when the char is detected:-        
        .attach(&detectedChar, MODSERIAL::RxAutoDetect);
      2nd: Send the char to detect.
        .autoDectectChar('\n');
      Whenever that char goes into the RX buffer your callback will be invoked.
      Added example2.cpp to demo a simple messaging system using this auto feature.


1.11 - 23/11/2010

    * Fixed a minor issue with 1.10 missed an alteration of name change.
    
1.10 - 23/11/2010

    * Reanme the DMA callback from attach_dma_complete() to attach_dmaSendComplete()
    
1.9 - 23/11/2010

    * Added support for DMA sending of characters. Required is
      the MODDMA library module:-
      http://mbed.org/users/AjK/libraries/MODDMA/latest
      See example_dma.cpp for more information.
      
1.8 - 22/11/2010

    * Added code so that if a buffer is set to zero length then
      MODSERIAL defaults to just using the FIFO for that stream
      thus making the library "fall back" to teh same operation
      that the Mbed Serial library performs.
    * Removed dmaSend() function that should have been removed 
      at 1.7
    
1.7 - 21/11/2010

    * Remove the DMA enum from MODSERIAL.h as it's not currently 
      ready for release.
    * Added page doxygen comments.

1.6 - 21/11/2010

   * Version 1.5 solved a blocking problem on putc() when called 
     from another ISR. However, isr_tx() invokes a callback of it's
     own when a byte is tranferred from TX buffer to TX FIFO. User
     programs may interpret that as an IRQ callback. That's an ISR
     call from within an existing ISR which is not good. So the 
     TxIrq callback from isr_tx is now conditional. It will only
     be called when isr_tx() is actually within it's own ISR and
     not when called from alternate ISR handlers.
     
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
      versioning, I'm use to working in HEAD and BRANCHES after I've
      released a project. Getting bug reports in current releases
      while trying to dev new code is hard to manage without source
      control of some type!

1.3 - 21/11/2010

    * Fixed a macro problem with txIsBusy()
    * Started adding code to use "block data" sending using DMA
    * Removed #include "IOMACROS.h"
    
1.2 - 21/11/2010

    * Removed unsed variables from flushBuffer()
    * Fixed a bug where both RX AND TX fifos are cleared/reset 
      when just TX OR RX should be cleared.
    * Fixed a bug that cleared IIR when in fact it should be left
      alone so that any pending interrupt after flush is handled.
    * Merged setBase() into init() as it wasn't required anywhere else.
    * Changed init() to enforce _uidx is set by Serial to define the _base
      address of the Uart in use.
        
1.1 - 20/11/2010

    * Added this file
    * Removed cruft from GETC.cpp
    * "teh" should be "the", why do my fingers do that?

1.0 - 20/11/2010

    * First release.

*/