summaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
...
* | altos: Share getnibble functionKeith Packard2012-11-30
|/ | | | | | | Two implementations of the same function, one in cc1111/ao_dbg.c and the other in core/ao_send_packet.c. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make Tm recovery mode set RF cal and callsign tooKeith Packard2012-11-18
| | | | | | | This lets us connect to Tm even if someone messes up the RF calibration or callsign info Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove legacy telemetry from ao_monitor when not neededKeith Packard2012-11-01
| | | | | | | For products not supporting LEGACY_MONITOR, remove the (undefined) structs from the ao_monitor union. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove 'volatile' from ao_rssi.c globalsKeith Packard2012-11-01
| | | | | | No need for this, the variables aren't changed at interrupt time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Provide ao_task_alarm_tick to reduce per-tick costKeith Packard2012-10-26
| | | | | | | Cache the next wakeup time and check that before jumping to the task code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Leave interrupts disabled while checking for task to runKeith Packard2012-10-26
| | | | | | | Otherwise, we run the risk of an interrupt waking a task after we've decided to idle the CPU. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Wrap ao_container_of value in parensKeith Packard2012-10-25
| | | | | | | Keeps the cast from being separated from the value when used in expressions. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch drivers to ao_arch_block/release_interruptsKeith Packard2012-10-25
| | | | | | Stop using cli/sei, which are avr-specific Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add task queues.Keith Packard2012-10-25
| | | | | | | | | This replaces the array-based scheduler with a queue-based one instead. It should have the same basic scheduling semantics, but it walks shorter lists for each operation, making it much more efficient when the system has a lot of tasks. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add stack-guard code. Uses STM MPU to trap stack overflow.Keith Packard2012-10-25
| | | | | | | | This marks the lowest portion of the stack as inaccessible to the CPU, causing the processor to fault when it reaches it. The fault then generates a panic message so that the user can know what happened. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Replace __critical usage with ao_arch_critical as neededKeith Packard2012-10-25
| | | | | | | | | | | | | sdcc offers __critical as a machine-independent way to block interrupts, but as gcc doesn't, we need to use a compiler-independent construct instead. ao_arch_critical has been around since the AVR port, but some old __critical usages remained. This fixes a bunch of random hangs when communicating with MM over USB or the radio as the various stdio loops were running without interrupts blocked between the test and the sleep. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: profiling on STM32LKeith Packard2012-10-25
| | | | | | Add sample-based profiling, using a 1kHz timer Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: When slave mode first starts, accept any packetKeith Packard2012-10-25
| | | | | | | | This eliminates the packet sequence matching for the first packet, allowing outstanding send data to arrive from the master instead of ignoring packets with data until they match the seqno Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow pyro flight state config to be setKeith Packard2012-10-22
| | | | | | Without these lines, flight state compares can't be shown or set. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add state comparisons to pyro channel conditionsKeith Packard2012-10-22
| | | | | | | | Let pyro channels block waiting for flight state changes. This allows for pyro channels to be synchronized with the main iginiter channels. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Document mega log packet typesKeith Packard2012-10-21
| | | | | | | Just add comments to ao_log.h so it's easy to remember which labels go with each record. Signed-off-by: Keith Packard <keithp@keithp.com>
* Merge branch 'master' into mm-ms5611Keith Packard2012-10-18
|\ | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: When missing MMA655x, create fake Z accel valueKeith Packard2012-10-13
| | | | | | | | | | | | | | This avoids overwriting the MPU6000 y acceleration value so that other computations using that value can work unmodified. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: struct ao_log_mega doesn't have a ground temp valueKeith Packard2012-10-13
| | | | | | | | | | | | | | There's no averaged ground temperature recorded in the flight system to save there, so just remove the field Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Document a few member offsets in struct ao_log_recordKeith Packard2012-10-13
| | | | | | | | | | | | Incomplete, but useful even so Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Allow products to define which LED to panic withKeith Packard2012-10-12
| | | | | | | | | | | | Continue to use AO_LED_RED by default. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Include struct ao_data declaration only when usedKeith Packard2012-10-12
| | | | | | | | | | | | Leave it out for products that don't have a ring of sensor data Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Clean up types in Pa conversion testing code. Only test to 40kmKeith Packard2012-10-12
| | | | | | | | | | | | | | | | A couple of missing 'int' declarations. Only test to 40km as above that there aren't enough data points to do anything reasonable Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Elide ao_altitude_to_pa in flight firmwareKeith Packard2012-10-12
| | | | | | | | | | | | | | Only the conversion testing code needs to get back from altitude to pressure, so don't include that code in other environments. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Parameterize altitude table access and initializationKeith Packard2012-10-12
| | | | | | | | | | | | | | | | | | | | This allows projects to store the altitude data in different representations or with different access modes. By default, altitude data is stored in meters, but the initializers include decimeter values so those can be used instead if desired. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Use alt_t for all Pascal-based altitude dataKeith Packard2012-10-12
| | | | | | | | | | | | | | This allows alt_t to be overridden for systems using the MS5607/MS5611 sensors Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Allow for other mutex implementationsKeith Packard2012-10-12
| | | | | | | | | | | | Allow projects to replace ao_mutex_get and ao_mutex_put with macros Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Allow projects to specify clock at other than 100HzKeith Packard2012-10-12
| | | | | | | | | | | | Leave the default at 100Hz, but allow it to be overridden Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Split task definitions out to ao_task.hKeith Packard2012-10-12
| | | | | | | | | | | | And only include them if using tasks Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Compute desired frequency when upgrading from pre-1.1Keith Packard2012-10-08
| | | | | | | | | | | | | | Instead of just smashing the frequency to 434.550, compute the frequency from the old radio channel value Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Go back to recording sensor data in globalsmm-ms5611Keith Packard2012-10-08
|/ | | | | | | | Instead of trying to get things into the ring from a variety of functions, go back to the simpler method of storing them in globals and having the ADC code just pluck out the most recent values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up flight data definitionsKeith Packard2012-09-09
| | | | | | | These just shuffle the various definitions of data macros around to make the include files more sensible looking. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: include ao_arch_funcs.h at the very end of ao.hKeith Packard2012-09-09
| | | | | | Move it below the definition of the ms5607 init function Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow products without MS5607Keith Packard2012-09-09
| | | | | | | The define for a missing MS5607 was wrong, so anything using the fancy multi-sensor data code would break without an MS5607 in place. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add custom panic noise for self-test failuresKeith Packard2012-08-31
| | | | | | Make it easier to tell which component is failing self test Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Note changes to configured AES key for SPI radio convenienceKeith Packard2012-08-29
| | | | | | | Keep a sequence number to mark when the AES key is changed so that the radio code can avoid sending the key before every CMAC radio operation. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move radio_cmac test funcs from ao_lco_cmd.c to new fileKeith Packard2012-08-28
| | | | | | | These are useful in the firing node for testing as well, so move them to be shared. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fix ao_delay function and move from per-chip code to ao_task.cKeith Packard2012-08-28
| | | | | | | ao_delay hasn't been chip-specific for a long time, and it had a bug in not calling ao_clear_alarm. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up radio APIsKeith Packard2012-08-27
| | | | | | | Move api to ao_radio_cmac.h include file. Expose ao_radio_test as standard API. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Trigger sample complete when all data are readyKeith Packard2012-08-26
| | | | | | | This has each sensor mark a bit in the current data record which is then sent for processing when all of the data are present. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make ao_cur_task_index track ao_cur_task in ao_yieldKeith Packard2012-08-26
| | | | | | | | This keeps the two main task references (index and pointer) in agreement during task switching, avoiding an extra assignment at the end of the task switching loop. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Split out LCO functions from ao_radio_cmac.c to ao_lco.cKeith Packard2012-08-24
| | | | | | | These functions are not used in the telelaunch or telefire nodes, so don't force them to be included. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Have radio_cmac turn on LEDs as appropriateKeith Packard2012-08-24
| | | | | | | Use AO_LED_RX and AO_LED_TX defines if present to control LEDs during radio operations. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add 'ao_led_set_mask' in the PCA9922 driverKeith Packard2012-08-24
| | | | | | This lets a subset of the LEDs be controlled independent of other LED settings. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add button driver and event queueKeith Packard2012-08-06
| | | | | | | With this, a single task can wait for any button or quadrature input device. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add telefire-v0.1Keith Packard2012-07-29
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add software AES implementationKeith Packard2012-07-29
| | | | | | This is untested Signed-off-by: Keith Packard <keithp@keithp.com>
* Add ability to re-play telemetry through TeleDongleKeith Packard2012-07-29
| | | | | | | | This adds a new command to TeleDongle to send arbitrary data, and then creates a new tool, 'ao-send-telem' that replays existing telemetry files through TeleDongle. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move ao_radio_cmac.c to core (it doesn't depend on hardware)Keith Packard2012-07-22
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Toggling telemetry monitoring would replay the telem queueKeith Packard2012-07-17
| | | | | | | | Using the 'm' command to turn telem off and back on would end up going around the whole telemetry queue replaying everything there as the wait loop would exit when disabling monitoring even if the ring was empty. Signed-off-by: Keith Packard <keithp@keithp.com>