Bug fix release

Dependents:   AntiTheftGPS XbeeReceive XbeeSend Superball_Ball2 ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ChangeLog.c Source File

ChangeLog.c

00001 /* $Id:$
00002 
00003 1.25    8th January 2013
00004     
00005     * Bring back into line with MBed libraries.
00006     * Credits: 
00007         Erik Olieman : http://mbed.org/users/Sissors/code/MODSERIAL/rev/3ba4341d74d6
00008         Erik Olieman : http://mbed.org/users/Sissors/code/MODSERIAL/rev/a469aa702bab
00009     
00010 
00011 1.24    6th Dec 2012
00012         
00013     * Beta release for new Mbed library.
00014 
00015 1.23    25th July 2012
00016 
00017     * LPC1768 code as was. This release includes "alpha" support for the LPC11U24
00018 
00019 1.22    19th April 2012
00020 
00021     * http://mbed.org/forum/bugs-suggestions/topic/2936/
00022     * Bug fix, protect important buffer pointers from IRQ corruption.
00023     * Credits: 
00024         Anthony Wieser  http://mbed.org/users/WieserSoftwareLtd/ for the fix.
00025         BlazeX http://mbed.org/users/BlazeX/ for the alert that a fix was needed!
00026 
00027 1.21    10 May 2011
00028     
00029     * http://mbed.org/forum/mbed/topic/2264
00030     
00031 1.20    26 April 2011
00032 
00033     * Bug fix, not blocking on transmit
00034       by Erik Petrich, http://mbed.org/forum/bugs-suggestions/topic/2200
00035       
00036 1.19    20 April 2011
00037 
00038     * Fixed some doxygen comment bugs.
00039     
00040 1.18    20 April 2011
00041 
00042     * All callbacks now use MODSERIAL_callback (rather than Mbed's FunctionPointer[1] type)
00043       to store and invoke it's callbacks. This allows MODSERIAL to pass a parameter
00044       to callbacks. The function prototype is now void func(MODSERIAL_IRQ_INFO *q).
00045     * Callbacks now pass a pointer to a MODSERIAL_IRQ_INFO class type.
00046       This class holds a pointer to the MODSERIAL object that invoked the callback
00047       thus freeing callbacks need to use the global variable of the original 
00048       MODSERIAL instance.
00049     * MODSERIAL_IRQ_INFO also declares public functions that are protected within MODSERIAL
00050       thus allowing certain functions to be restricted to callback context only.
00051     * New function MODSERIAL_IRQ_INFO::rxDiscardLastChar() allows an rxCallback function
00052       to remove the character that was just placed into the RX buffer.
00053     
00054     [1] http://mbed.org/users/AjK/libraries/FPointer/latest/docs/
00055 
00056 1.17   08/Mar/2011
00057        Fixed a memory leak in the DMA code.
00058        
00059 1.16 - 12 Feb 2011
00060     
00061     * Missed one, doh!
00062 
00063 1.15 - 12 Feb 2011
00064     
00065     * Fixed some typos.
00066     
00067 1.14 - 7 Feb 2011
00068 
00069     * Fixed a bug in __putc() that caused the output buffer pointer to 
00070       become corrupted.
00071 
00072 1.13 - 20/01/2011
00073 
00074     * Added extra documentation.
00075     * Fixed some typos.
00076     
00077 1.12 - 20/01/2011
00078 
00079     * Added new "autoDetectChar()" function. To use:-
00080       1st: Add a callback to invoke when the char is detected:-        
00081         .attach(&detectedChar, MODSERIAL::RxAutoDetect);
00082       2nd: Send the char to detect.
00083         .autoDectectChar('\n');
00084       Whenever that char goes into the RX buffer your callback will be invoked.
00085       Added example2.cpp to demo a simple messaging system using this auto feature.
00086 
00087 
00088 1.11 - 23/11/2010
00089 
00090     * Fixed a minor issue with 1.10 missed an alteration of name change.
00091     
00092 1.10 - 23/11/2010
00093 
00094     * Rename the DMA callback from attach_dma_complete() to attach_dmaSendComplete()
00095     
00096 1.9 - 23/11/2010
00097 
00098     * Added support for DMA sending of characters. Required is
00099       the MODDMA library module:-
00100       http://mbed.org/users/AjK/libraries/MODDMA/latest
00101       See example_dma.cpp for more information.
00102       
00103 1.8 - 22/11/2010
00104 
00105     * Added code so that if a buffer is set to zero length then
00106       MODSERIAL defaults to just using the FIFO for that stream
00107       thus making the library "fall back" to teh same operation
00108       that the Mbed Serial library performs.
00109     * Removed dmaSend() function that should have been removed 
00110       at 1.7
00111     
00112 1.7 - 21/11/2010
00113 
00114     * Remove the DMA enum from MODSERIAL.h as it's not currently 
00115       ready for release.
00116     * Added page doxygen comments.
00117 
00118 1.6 - 21/11/2010
00119 
00120    * Version 1.5 solved a blocking problem on putc() when called 
00121      from another ISR. However, isr_tx() invokes a callback of it's
00122      own when a byte is tranferred from TX buffer to TX FIFO. User
00123      programs may interpret that as an IRQ callback. That's an ISR
00124      call from within an existing ISR which is not good. So the 
00125      TxIrq callback from isr_tx is now conditional. It will only
00126      be called when isr_tx() is actually within it's own ISR and
00127      not when called from alternate ISR handlers.
00128      
00129 1.5 - 21/11/2010
00130 
00131     * Calling putc() (or any derived function that uses it like
00132       printf()) while inside an interrupt service routine can
00133       cause the system to lock up if the TX buffer is full. This
00134       is because bytes are only transferred from the TX buffer to
00135       the TX FIFO via the TX ISR. If we are, say in an RX ISR already,
00136       then the TX ISR will never trigger. The TX buffer stays full and
00137       there is never space to putc() the byte. So, while putc() blocks
00138       waiting for space it calls isr_tx() to ensure if TX FIFO space
00139       becomes available it will move bytes from the TX buffer to TX
00140       FIFO thus removing the blocking condition within putc().
00141 
00142 1.4 - 21/11/2010
00143 
00144     * Removed all the new DMA code. I wish mbed.org had proper SVN
00145       versioning, I'm use to working in HEAD and BRANCHES after I've
00146       released a project. Getting bug reports in current releases
00147       while trying to dev new code is hard to manage without source
00148       control of some type!
00149 
00150 1.3 - 21/11/2010
00151 
00152     * Fixed a macro problem with txIsBusy()
00153     * Started adding code to use "block data" sending using DMA
00154     * Removed #include "IOMACROS.h"
00155     
00156 1.2 - 21/11/2010
00157 
00158     * Removed unsed variables from flushBuffer()
00159     * Fixed a bug where both RX AND TX fifos are cleared/reset 
00160       when just TX OR RX should be cleared.
00161     * Fixed a bug that cleared IIR when in fact it should be left
00162       alone so that any pending interrupt after flush is handled.
00163     * Merged setBase() into init() as it wasn't required anywhere else.
00164     * Changed init() to enforce _uidx is set by Serial to define the _base
00165       address of the Uart in use.
00166         
00167 1.1 - 20/11/2010
00168 
00169     * Added this file
00170     * Removed cruft from GETC.cpp
00171     * "teh" should be "the", why do my fingers do that?
00172 
00173 1.0 - 20/11/2010
00174 
00175     * First release.
00176 
00177 */