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