JEK changes enabling proper recording of IMU/GPS datastrams - 02-APR-2013

Dependencies:   mbed

Fork of GPS_Incremental by Dan Matthews

Committer:
jekain314
Date:
Fri Apr 19 16:21:27 2013 +0000
Revision:
9:b45feb91ba38
Parent:
0:c746ee34feae
update to allow better imu gps data collection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dannyman939 0:c746ee34feae 1 /* $Id:$
dannyman939 0:c746ee34feae 2
dannyman939 0:c746ee34feae 3 1.23 25th July 2012
dannyman939 0:c746ee34feae 4
dannyman939 0:c746ee34feae 5 * LPC1768 code as was. This release includes "alpha" support for the LPC11U24
dannyman939 0:c746ee34feae 6
dannyman939 0:c746ee34feae 7 1.22 19th April 2012
dannyman939 0:c746ee34feae 8
dannyman939 0:c746ee34feae 9 * http://mbed.org/forum/bugs-suggestions/topic/2936/
dannyman939 0:c746ee34feae 10 * Bug fix, protect important buffer pointers from IRQ corruption.
dannyman939 0:c746ee34feae 11 Credits:
dannyman939 0:c746ee34feae 12 Anthony Wieser http://mbed.org/users/WieserSoftwareLtd/ for the fix.
dannyman939 0:c746ee34feae 13 BlazeX http://mbed.org/users/BlazeX/ for the alert that a fix was needed!
dannyman939 0:c746ee34feae 14
dannyman939 0:c746ee34feae 15 1.21 10 May 2011
dannyman939 0:c746ee34feae 16
dannyman939 0:c746ee34feae 17 * http://mbed.org/forum/mbed/topic/2264
dannyman939 0:c746ee34feae 18
dannyman939 0:c746ee34feae 19 1.20 26 April 2011
dannyman939 0:c746ee34feae 20
dannyman939 0:c746ee34feae 21 * Bug fix, not blocking on transmit
dannyman939 0:c746ee34feae 22 by Erik Petrich, http://mbed.org/forum/bugs-suggestions/topic/2200
dannyman939 0:c746ee34feae 23
dannyman939 0:c746ee34feae 24 1.19 20 April 2011
dannyman939 0:c746ee34feae 25
dannyman939 0:c746ee34feae 26 * Fixed some doxygen comment bugs.
dannyman939 0:c746ee34feae 27
dannyman939 0:c746ee34feae 28 1.18 20 April 2011
dannyman939 0:c746ee34feae 29
dannyman939 0:c746ee34feae 30 * All callbacks now use MODSERIAL_callback (rather than Mbed's FunctionPointer[1] type)
dannyman939 0:c746ee34feae 31 to store and invoke it's callbacks. This allows MODSERIAL to pass a parameter
dannyman939 0:c746ee34feae 32 to callbacks. The function prototype is now void func(MODSERIAL_IRQ_INFO *q).
dannyman939 0:c746ee34feae 33 * Callbacks now pass a pointer to a MODSERIAL_IRQ_INFO class type.
dannyman939 0:c746ee34feae 34 This class holds a pointer to the MODSERIAL object that invoked the callback
dannyman939 0:c746ee34feae 35 thus freeing callbacks need to use the global variable of the original
dannyman939 0:c746ee34feae 36 MODSERIAL instance.
dannyman939 0:c746ee34feae 37 * MODSERIAL_IRQ_INFO also declares public functions that are protected within MODSERIAL
dannyman939 0:c746ee34feae 38 thus allowing certain functions to be restricted to callback context only.
dannyman939 0:c746ee34feae 39 * New function MODSERIAL_IRQ_INFO::rxDiscardLastChar() allows an rxCallback function
dannyman939 0:c746ee34feae 40 to remove the character that was just placed into the RX buffer.
dannyman939 0:c746ee34feae 41
dannyman939 0:c746ee34feae 42 [1] http://mbed.org/users/AjK/libraries/FPointer/latest/docs/
dannyman939 0:c746ee34feae 43
dannyman939 0:c746ee34feae 44 1.17 08/Mar/2011
dannyman939 0:c746ee34feae 45 Fixed a memory leak in the DMA code.
dannyman939 0:c746ee34feae 46
dannyman939 0:c746ee34feae 47 1.16 - 12 Feb 2011
dannyman939 0:c746ee34feae 48
dannyman939 0:c746ee34feae 49 * Missed one, doh!
dannyman939 0:c746ee34feae 50
dannyman939 0:c746ee34feae 51 1.15 - 12 Feb 2011
dannyman939 0:c746ee34feae 52
dannyman939 0:c746ee34feae 53 * Fixed some typos.
dannyman939 0:c746ee34feae 54
dannyman939 0:c746ee34feae 55 1.14 - 7 Feb 2011
dannyman939 0:c746ee34feae 56
dannyman939 0:c746ee34feae 57 * Fixed a bug in __putc() that caused the output buffer pointer to
dannyman939 0:c746ee34feae 58 become corrupted.
dannyman939 0:c746ee34feae 59
dannyman939 0:c746ee34feae 60 1.13 - 20/01/2011
dannyman939 0:c746ee34feae 61
dannyman939 0:c746ee34feae 62 * Added extra documentation.
dannyman939 0:c746ee34feae 63 * Fixed some typos.
dannyman939 0:c746ee34feae 64
dannyman939 0:c746ee34feae 65 1.12 - 20/01/2011
dannyman939 0:c746ee34feae 66
dannyman939 0:c746ee34feae 67 * Added new "autoDetectChar()" function. To use:-
dannyman939 0:c746ee34feae 68 1st: Add a callback to invoke when the char is detected:-
dannyman939 0:c746ee34feae 69 .attach(&detectedChar, MODSERIAL::RxAutoDetect);
dannyman939 0:c746ee34feae 70 2nd: Send the char to detect.
dannyman939 0:c746ee34feae 71 .autoDectectChar('\n');
dannyman939 0:c746ee34feae 72 Whenever that char goes into the RX buffer your callback will be invoked.
dannyman939 0:c746ee34feae 73 Added example2.cpp to demo a simple messaging system using this auto feature.
dannyman939 0:c746ee34feae 74
dannyman939 0:c746ee34feae 75
dannyman939 0:c746ee34feae 76 1.11 - 23/11/2010
dannyman939 0:c746ee34feae 77
dannyman939 0:c746ee34feae 78 * Fixed a minor issue with 1.10 missed an alteration of name change.
dannyman939 0:c746ee34feae 79
dannyman939 0:c746ee34feae 80 1.10 - 23/11/2010
dannyman939 0:c746ee34feae 81
dannyman939 0:c746ee34feae 82 * Rename the DMA callback from attach_dma_complete() to attach_dmaSendComplete()
dannyman939 0:c746ee34feae 83
dannyman939 0:c746ee34feae 84 1.9 - 23/11/2010
dannyman939 0:c746ee34feae 85
dannyman939 0:c746ee34feae 86 * Added support for DMA sending of characters. Required is
dannyman939 0:c746ee34feae 87 the MODDMA library module:-
dannyman939 0:c746ee34feae 88 http://mbed.org/users/AjK/libraries/MODDMA/latest
dannyman939 0:c746ee34feae 89 See example_dma.cpp for more information.
dannyman939 0:c746ee34feae 90
dannyman939 0:c746ee34feae 91 1.8 - 22/11/2010
dannyman939 0:c746ee34feae 92
dannyman939 0:c746ee34feae 93 * Added code so that if a buffer is set to zero length then
dannyman939 0:c746ee34feae 94 MODSERIAL defaults to just using the FIFO for that stream
dannyman939 0:c746ee34feae 95 thus making the library "fall back" to teh same operation
dannyman939 0:c746ee34feae 96 that the Mbed Serial library performs.
dannyman939 0:c746ee34feae 97 * Removed dmaSend() function that should have been removed
dannyman939 0:c746ee34feae 98 at 1.7
dannyman939 0:c746ee34feae 99
dannyman939 0:c746ee34feae 100 1.7 - 21/11/2010
dannyman939 0:c746ee34feae 101
dannyman939 0:c746ee34feae 102 * Remove the DMA enum from MODSERIAL.h as it's not currently
dannyman939 0:c746ee34feae 103 ready for release.
dannyman939 0:c746ee34feae 104 * Added page doxygen comments.
dannyman939 0:c746ee34feae 105
dannyman939 0:c746ee34feae 106 1.6 - 21/11/2010
dannyman939 0:c746ee34feae 107
dannyman939 0:c746ee34feae 108 * Version 1.5 solved a blocking problem on putc() when called
dannyman939 0:c746ee34feae 109 from another ISR. However, isr_tx() invokes a callback of it's
dannyman939 0:c746ee34feae 110 own when a byte is tranferred from TX buffer to TX FIFO. User
dannyman939 0:c746ee34feae 111 programs may interpret that as an IRQ callback. That's an ISR
dannyman939 0:c746ee34feae 112 call from within an existing ISR which is not good. So the
dannyman939 0:c746ee34feae 113 TxIrq callback from isr_tx is now conditional. It will only
dannyman939 0:c746ee34feae 114 be called when isr_tx() is actually within it's own ISR and
dannyman939 0:c746ee34feae 115 not when called from alternate ISR handlers.
dannyman939 0:c746ee34feae 116
dannyman939 0:c746ee34feae 117 1.5 - 21/11/2010
dannyman939 0:c746ee34feae 118
dannyman939 0:c746ee34feae 119 * Calling putc() (or any derived function that uses it like
dannyman939 0:c746ee34feae 120 printf()) while inside an interrupt service routine can
dannyman939 0:c746ee34feae 121 cause the system to lock up if the TX buffer is full. This
dannyman939 0:c746ee34feae 122 is because bytes are only transferred from the TX buffer to
dannyman939 0:c746ee34feae 123 the TX FIFO via the TX ISR. If we are, say in an RX ISR already,
dannyman939 0:c746ee34feae 124 then the TX ISR will never trigger. The TX buffer stays full and
dannyman939 0:c746ee34feae 125 there is never space to putc() the byte. So, while putc() blocks
dannyman939 0:c746ee34feae 126 waiting for space it calls isr_tx() to ensure if TX FIFO space
dannyman939 0:c746ee34feae 127 becomes available it will move bytes from the TX buffer to TX
dannyman939 0:c746ee34feae 128 FIFO thus removing the blocking condition within putc().
dannyman939 0:c746ee34feae 129
dannyman939 0:c746ee34feae 130 1.4 - 21/11/2010
dannyman939 0:c746ee34feae 131
dannyman939 0:c746ee34feae 132 * Removed all the new DMA code. I wish mbed.org had proper SVN
dannyman939 0:c746ee34feae 133 versioning, I'm use to working in HEAD and BRANCHES after I've
dannyman939 0:c746ee34feae 134 released a project. Getting bug reports in current releases
dannyman939 0:c746ee34feae 135 while trying to dev new code is hard to manage without source
dannyman939 0:c746ee34feae 136 control of some type!
dannyman939 0:c746ee34feae 137
dannyman939 0:c746ee34feae 138 1.3 - 21/11/2010
dannyman939 0:c746ee34feae 139
dannyman939 0:c746ee34feae 140 * Fixed a macro problem with txIsBusy()
dannyman939 0:c746ee34feae 141 * Started adding code to use "block data" sending using DMA
dannyman939 0:c746ee34feae 142 * Removed #include "IOMACROS.h"
dannyman939 0:c746ee34feae 143
dannyman939 0:c746ee34feae 144 1.2 - 21/11/2010
dannyman939 0:c746ee34feae 145
dannyman939 0:c746ee34feae 146 * Removed unsed variables from flushBuffer()
dannyman939 0:c746ee34feae 147 * Fixed a bug where both RX AND TX fifos are cleared/reset
dannyman939 0:c746ee34feae 148 when just TX OR RX should be cleared.
dannyman939 0:c746ee34feae 149 * Fixed a bug that cleared IIR when in fact it should be left
dannyman939 0:c746ee34feae 150 alone so that any pending interrupt after flush is handled.
dannyman939 0:c746ee34feae 151 * Merged setBase() into init() as it wasn't required anywhere else.
dannyman939 0:c746ee34feae 152 * Changed init() to enforce _uidx is set by Serial to define the _base
dannyman939 0:c746ee34feae 153 address of the Uart in use.
dannyman939 0:c746ee34feae 154
dannyman939 0:c746ee34feae 155 1.1 - 20/11/2010
dannyman939 0:c746ee34feae 156
dannyman939 0:c746ee34feae 157 * Added this file
dannyman939 0:c746ee34feae 158 * Removed cruft from GETC.cpp
dannyman939 0:c746ee34feae 159 * "teh" should be "the", why do my fingers do that?
dannyman939 0:c746ee34feae 160
dannyman939 0:c746ee34feae 161 1.0 - 20/11/2010
dannyman939 0:c746ee34feae 162
dannyman939 0:c746ee34feae 163 * First release.
dannyman939 0:c746ee34feae 164
dannyman939 0:c746ee34feae 165 */