summaryrefslogtreecommitdiff
path: root/src/ao_log.c
Commit message (Collapse)AuthorAge
* altos/altosui: Report log format in the version commandKeith Packard2011-08-13
| | | | | | | | This will make it easier to figure out what the contents of the flash should look like from altosui; the current 'guessing' mechanism will not scale to many more formats. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_log.c and ao_log_big.c __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Shrink help textKeith Packard2011-07-04
| | | | | | Reduce const space taken by command help text. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add tiny logging for TeleMini/TeleNanoKeith Packard2011-03-17
| | | | | | | | | | This splits the logging code into management of the log space within storage and separate code to actually write suitable log entries. A new log writing module, ao_log_tiny, is added which writes only altimeter data at a fairly low data rate for devices using on-chip storage. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make serial, usb, beeper and accelerometer optional componentsKeith Packard2011-03-16
| | | | | | | Not all boards will have these, so fix places that use them to deal with that. Signed-off-by: Keith Packard <keithp@keithp.com>
* src/ao_cmd: Shave off bytes from doc stringsAnthony Towns2011-03-07
| | | | | | Switch to using { func, "X args\0Desc" } to specify command, saving a char field by looking at help[0] instead, and reduce help length by doing alignment with printf instead of hardcoded spaces.
* altos: Ensure flight code gets first crack at new ADC dataKeith Packard2011-01-16
| | | | | | | | Instead of having everyone wait on the raw ADC ring, have the flight code wait on that and have everyone else wait for the flight code to finish looking at the data and move its pointer forwards. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Flush log when fullKeith Packard2011-01-16
| | | | | | | When the log storage is full, make sure any pending writes are flushed out so that the last bit isn't lost. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: check for valid flight number in ao_log_deleteKeith Packard2011-01-12
| | | | | | | | Zero is not a valid flight number, and ao_log_flight uses that to indicate 'no flight in this slot'. Check the user-provided input for zero before looking through the slots. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Check for full log and complainKeith Packard2011-01-07
| | | | | | | Reports special tone along with the continuity checks. Reports flight 0 in telemetry. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ensure erase mark is written when erasing flightsKeith Packard2011-01-07
| | | | | | | | It was getting called only when *failing* to erase a flight (oops), secondly, it wasn't getting written because ao_storage_flush wasn't getting called. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: report flight log offsets in hex block numbers instead of bytesKeith Packard2011-01-07
| | | | | | makes them compatible with the 'e' command. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: support storage of multiple flights.Keith Packard2011-01-07
| | | | | | This adds the logging support for dealing with multiple flights Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Mark end of available flight list with 'done' to make the UIKeith Packard2011-01-06
| | | | | | code easier to write Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rip out 'optimization' in ao_log_scanKeith Packard2011-01-06
| | | | | | | Remove premature optimization to avoid re-scanning the flight logs for the best empty entry. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move common storage code to ao_storage.c. Add M25P80 driverKeith Packard2011-01-06
| | | | | | | This reworks the storage API so that you erase blocks and then store data to them so that the M25P80 driver will work. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Require manual flight erasing.Keith Packard2011-01-06
| | | | | | This supports flash chips that require larger erase blocks. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Simplify storage APIKeith Packard2011-01-06
| | | | | | | This removes the config-specific APIs and exposes global variables for the available storage space, block size and config storage location. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: mark gps date written only after it gets into eepromKeith Packard2010-08-26
| | | | | | | | Data logging doesn't start until boost detect occurs. As the GPS date is only logged once, if that happens before logging is written to the flash, then the GPS date will never get saved. Signed-off-by: Keith Packard <keithp@keithp.com>
* Make ao_log_data re-entrant as it is used for both sensor and GPS logsKeith Packard2010-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because ao_log_data is called from two different threads, failing to make it re-entrant would cause the 'log' pointer parameter to get overwritten if another thread asked to log data while the eeprom was busy writing out a block. This would cause the second thread to re-writing data from the first thread's address, but without re-checksumming the data as the checksum is computed before the log mutex is taken. The bug can be seen by log blocks with invalid checksums. Here's what happens with the ao_gps_tracking_report and ao_log threads: ao_gps_tracking_report ao_log Writes a bunch of records *blocks* in the eeprom flush sets ao_log_data 'log' to global 'log' computes checksum for 'log' block *blocks* on ao_log_mutex Wakes up sets ao_log_data 'log' to 'gps_log' writes remaining records 'gps_log' is left with svid = 0 *blocks* on ao_gps_tracking_data writes data, reading from the current ao_log_data 'log' pointer which points at 'gps_log' Making ao_log_data re-entrant fixes this by ensuring that the 'ao_log' thread has its own copy of the ao_log_data 'log' parameter. I made this function take an __xdata restricted pointer so that it could be passed in the dptr register instead of needing to go on the stack. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add flight number to telemetry stream.Keith Packard2009-11-15
| | | | | | | | This makes it easier to tie the telemetry and eeprom files together as they're now both labeled with serial and flight numbers, which should be unique. Signed-off-by: Keith Packard <keithp@keithp.com>
* Remove "l" command as ao-dumplong no longer uses itKeith Packard2009-11-02
|
* Save some DSEG space by marking cmd functions __reentrantKeith Packard2009-10-16
| | | | | | | __reentrant causes the compiler to place args and locals on the stack instead of in the data segment. Signed-off-by: Keith Packard <keithp@keithp.com>
* Remove bit-banging debug support from TM board buildsKeith Packard2009-09-02
| | | | | | | | | Our current TM boards don't have the wires to do bit-banging to another cc1111 board, so it doesn't make sense to fill up their flash with useless code (and the 'help' text with useless commands). Leave this to the TI board until we have boards that can serve as debug dongles. Signed-off-by: Keith Packard <keithp@keithp.com>
* Use autotools, move altos to src subdirKeith Packard2009-06-04
Signed-off-by: Keith Packard <keithp@keithp.com>