Keith Packard [Fri, 11 Nov 2016 07:24:11 +0000 (23:24 -0800)]
altos/lisp: use regular read-eval-print loop for make const
No need to open code this sequence of operations.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 10 Nov 2016 19:30:55 +0000 (11:30 -0800)]
altos/lisp: add progn, while, read and eval
Progn as a builtin will help with tail-recursion.
while provides for loops until tail-recursion works :-)
read and eval are kinda useful.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 10 Nov 2016 00:22:43 +0000 (16:22 -0800)]
altos/lisp: Clean up OS integration bits, add defun
Provide an abstraction for the OS interface so that it
can build more cleanly on Linux and AltOS. Add defun macro.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 9 Nov 2016 19:13:58 +0000 (11:13 -0800)]
altos/lisp: macros appear to work now
Needed an extra stack frame to stash the pre-macro state. This
simplified macro processing quite a bit; a macro now just evaluates
the function and then sends that result to be evaluated again.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 9 Nov 2016 17:14:50 +0000 (09:14 -0800)]
altos/lisp: working on lexical scoping
Not working yet
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 7 Nov 2016 05:47:31 +0000 (21:47 -0800)]
altos/lambdakey-v1.0: Tweak memory allocations
With non-recursive GC, more memory is available for the heap
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 6 Nov 2016 18:53:46 +0000 (10:53 -0800)]
altos/lisp: convert GC to non-recursive
Use a boolean array to note cons cells which would otherwise recurse,
then loop until that array is empty.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 6 Nov 2016 00:53:15 +0000 (17:53 -0700)]
altos/lisp: more GC issues. add patom
Use global ao_lisp_stack instead of local stack so that gc
moves of that item work.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 5 Nov 2016 22:12:05 +0000 (15:12 -0700)]
altos/lisp: make sure stack->formals_last gets moved during GC
Failing this leads to broken formals chains
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 5 Nov 2016 21:51:58 +0000 (14:51 -0700)]
altos/lisp: Change GC move API
Pass reference to move API so it can change the values in-place, then
let it return '1' when the underlying object has already been moved to
shorten GC times.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 4 Nov 2016 23:51:12 +0000 (16:51 -0700)]
altos/lisp: get builtin macros working again
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 4 Nov 2016 23:31:34 +0000 (16:31 -0700)]
altos/lisp: Start rewriting eval as state machine
Ad-hoc code was incomprehensible and I couldn't make 'cond' work, so
I'm starting over.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 4 Nov 2016 04:51:26 +0000 (21:51 -0700)]
altos: Add lambdakey
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 4 Nov 2016 04:49:50 +0000 (21:49 -0700)]
altos: Add lambda support to lisp
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 3 Nov 2016 05:56:01 +0000 (22:56 -0700)]
altos/lisp: Separate out values from atoms
This enables changing values of atoms declared as constants, should
enable lets, and with some work, even lexical scoping.
this required changing the constant computation to run
ao_lisp_collect() before dumping the block of constant data, and that
uncovered some minor memory manager bugs.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 2 Nov 2016 21:18:54 +0000 (14:18 -0700)]
altos/lisp: add set/setq and ' in reader
Along with other small fixes
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 2 Nov 2016 21:18:31 +0000 (14:18 -0700)]
altos/stmf0: Add lisp to include directories
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 2 Nov 2016 21:14:23 +0000 (14:14 -0700)]
altos/kernel: Make ao_cmd_readline public. Return char from ao_cmd_lex.
With these two changes, the readline function can be used by other
code.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 2 Nov 2016 04:14:45 +0000 (21:14 -0700)]
altos/lisp: Change lisp objects to use ao_poly everywhere. Add const
This makes all lisp objects use 16-bit ints for references so we can
hold more stuff in small amounts of memory. Also adds a separate
constant pool of lisp objects for builtins, initial atoms and constant
lisp code.
Now builds (and runs!) on the nucleo-32 boards.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 1 Nov 2016 01:53:09 +0000 (18:53 -0700)]
altos: Add lisp reader
Keith Packard [Mon, 31 Oct 2016 23:43:44 +0000 (16:43 -0700)]
Add first lisp bits
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 18 Nov 2016 06:17:20 +0000 (22:17 -0800)]
ao-bringup: Improve EasyMini turnon and test scripts
Wait less time before trying the test script.
Have the test script wait for the device to appear. And then use
colors to help make the results clear.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 10 Oct 2016 02:42:42 +0000 (19:42 -0700)]
altos/test: Fix tests
A couple of fixups for ao_flight_test to dump pyro info only when
running in debug mode, and to change the aprs testing
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 31 Oct 2016 02:08:14 +0000 (19:08 -0700)]
altos/nucleo-32: Add basic support for STM32F042 Nucleo-32 board
This hooks up the LED, USB and the USART.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 31 Oct 2016 02:06:20 +0000 (19:06 -0700)]
altos/stmf0: Add USART support
The STM32F0 usart can be operated much like the STM32L usart, but the
registers are all moved around.
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Sun, 2 Oct 2016 23:19:14 +0000 (17:19 -0600)]
augment TeleDongle turn on script to support serial number on command line
Keith Packard [Thu, 22 Sep 2016 00:23:34 +0000 (03:23 +0300)]
Update pdclib to version using arm-specific 'ar' program
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 6 Sep 2016 04:25:07 +0000 (22:25 -0600)]
Fix release note html to remove xml bits
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 6 Sep 2016 02:55:17 +0000 (20:55 -0600)]
Remove pyro wizard file from master
This isn't done yet.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 6 Sep 2016 02:46:05 +0000 (20:46 -0600)]
Bump version to 1.6.8
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 6 Sep 2016 02:45:12 +0000 (20:45 -0600)]
altosui: Don't ship TeleMetrum v3.0 firmware (yet)
We haven't finished this yet, so don't deliver firmware for it.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 4 Sep 2016 02:02:35 +0000 (21:02 -0500)]
Add 1.6.8 release notes
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 06:21:34 +0000 (01:21 -0500)]
altos/stm: Set SPI slave DMA priority to HIGH/VERY_HIGH
Set spi slave DMA priority MOSI to HIGH and MISO to VERY_HIGH. Slave
SPI doesn't have the luxury of slowing down when the system is busy,
so provide it maximum memory bandwidth to try and keep up with the
master.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 06:20:20 +0000 (01:20 -0500)]
altos/stm: Set i2c recv DMA to HIGH
Make sure receive DMA is higher than any TX dma so that
it always runs in preference.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 05:55:19 +0000 (00:55 -0500)]
altos/stm: Set MISO DMA priority to HIGH to avoid OVR
When the MISO DMA priority is too low, and the processor gets busy,
it's possible for SPI input to overrun the processor, which causes the
MISO DMA to get out of sync and never finish. Set the MISO DMA
priority to HIGH to avoid this.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 05:53:44 +0000 (00:53 -0500)]
altos/stm: Create funcs to set SPI DMA parameters
Instead of having nearly duplicate versions of the SPI DMA
configuration calls, create helper funcs that do most of the work so
that the SPI API funcs are shorter and clearer.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 05:52:12 +0000 (00:52 -0500)]
altos/stm: Make ao_spi_duplex out pointer const
Provides a bit better typechecking opportunities for this function.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 04:40:03 +0000 (23:40 -0500)]
Bump version to 1.6.7.1
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 04:36:36 +0000 (23:36 -0500)]
ao-tools/ao-cal-freq: Re-open usb device each try
Instead of trying to re-use the same file descriptor, close and
re-open the device each time around the loop to avoid getting stuck
when calibrating TeleMega boards.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 04:34:47 +0000 (23:34 -0500)]
ao-tools/ao-usbload: Fix -f flag, remove debug hacks
The code to validate the usb id and product name had some debug hacks
left enabled, which caused it to fail. The short -f version of the
force flag was also not getting parsed correctly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 3 Sep 2016 04:33:27 +0000 (23:33 -0500)]
ao-bringup/turnon_telemetrum: serial on cmd line. Loop on accel fail
These make the script easier to use
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 2 Sep 2016 21:13:25 +0000 (16:13 -0500)]
altosui: Deal with connect failure in AltosConfigTD
When the USB connection times out, abort any pending operations and
clean up the thread correctly. Also, deal with the serial line being
closed by checking for null.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 1 Sep 2016 03:27:10 +0000 (21:27 -0600)]
ao-tools/ao-cal-freq: --verbose option has no parameter
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 1 Sep 2016 03:25:59 +0000 (21:25 -0600)]
ao-bringup: telemega allow serial on command line, loop on accel fail
Allow the serial number on the turnon_telemega command line, instead
of reading it.
When accel cal fails, loop waiting for it to succeed instead of
continuing blindly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 29 Aug 2016 16:27:53 +0000 (09:27 -0700)]
altos/cc1120: remove unused status from ao_radio_fifo_write_stop
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 14 Aug 2016 22:57:39 +0000 (15:57 -0700)]
ao-usbload: Check target device name to avoid mis-flashing
Instead of blindly loading firmware, go get the old device's name and
make sure it matches the new firmware.
Add --force option to allow this to be overridden.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 14 Aug 2016 22:55:13 +0000 (15:55 -0700)]
ao-chaosread: Parse -i and -b options
Need to pass the single-byte verisons to getopt_long
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 9 Aug 2016 05:40:41 +0000 (22:40 -0700)]
Bump verison to 1.6.7
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 9 Aug 2016 05:39:16 +0000 (22:39 -0700)]
altos/stmf0: Switch ADC fast to ADC clock
Using this slower clock eliminates sampling problems with the ADC and
cleans up the chaoskey raw data.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Aug 2016 16:54:16 +0000 (09:54 -0700)]
altos: Flash all LEDS during power on
This tests the LEDS to make sure they all work on the following devices:
easymega-v1.0
telebt-v3.0
teledongle-v3.0
telemega-v1.0
telemega-v2.0
telemetrum-v2.0
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Aug 2016 16:52:05 +0000 (09:52 -0700)]
ao-bringup: Add colors to chaoskey test result reporting
This makes them show up nice and bright in the terminal window.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:35:36 +0000 (16:35 -0700)]
Bump to version 1.6.6
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:52:39 +0000 (16:52 -0700)]
ao-bringup: Use released files for chaoskey turnon
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:30:15 +0000 (16:30 -0700)]
ao-bringup: Test chaoskey using dieharder
This uses a subset of the dieharder tests which run in reasonable time
and don't appear to emit false negatives on a regular basis.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:53:17 +0000 (16:53 -0700)]
ao-chaosread: Eliminate double-free when serial match fails
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:28:17 +0000 (16:28 -0700)]
ao-chaosread: Add --infinite and --bytes options
The --infinite option keeps writing data.
The --bytes options pulls out bits 1-8 which should provide 8 true
bits of entropy.
This combination allows ao-chaosread to be fed directly into dieharder
to validate the hardware.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:26:49 +0000 (16:26 -0700)]
altos: Use standard FIPS testing for chaoskey
Check to make sure we aren't repeating a block coming from the
unwhitened source, which is the standard online FIPS test for RNGs.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:53:50 +0000 (16:53 -0700)]
altos/stmf0: Clean .bin files from flash-loader dirs
The .bin files are what the DFU utility uses to flash the boot loader
using USB.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:32:43 +0000 (16:32 -0700)]
altos/stmf0: Hook up clock output support
This was used to try and not have two xtals on telemini, but failed
because the provided clock has too much noise.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:31:41 +0000 (16:31 -0700)]
altos: Make telelcotwo control two boxes instead of two pads
telefiretwo is now a single pad box, so telelcotwo needs to switch
between boxes instead of pads on the same box. Do this by re-purposing
the pad arming switches into a box selector and arming switch.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 28 Jul 2016 04:28:34 +0000 (21:28 -0700)]
altos: Add 'ao_button_get' to button driver
This returns the current state of the button; useful to check what the
value is at startup.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 2 Aug 2016 23:33:52 +0000 (16:33 -0700)]
altoslib: Add a 'seconds' method to AltosGPS
This computes the time in seconds since the epoch from GPS time
information.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 27 Jul 2016 20:29:20 +0000 (13:29 -0700)]
altos: Stop building cc1111-based telemini v2.0 firmware
This product never worked, so stop insisting that it actually build.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 27 Jul 2016 20:26:22 +0000 (13:26 -0700)]
altos: Don't switch to flight 0 when log fills in flight
If the log is full at startup, we want to transmit flight 0 to let the
ground station know. However, we don't want to switch to flight 0 in
flight, so save the initial telemetry flight number (0 or the real
flight number) at startup and use that throughout the flight.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 27 Jul 2016 20:24:57 +0000 (13:24 -0700)]
altos: Expose cc1200 radio test functions for telemini bringup
This exposes the cc1200 radio test function so we can load special
test firmware in telemini to do the radio cal as it has no USB to
perform that interactively.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 27 Jul 2016 20:23:06 +0000 (13:23 -0700)]
fixup for interleave
Keith Packard [Wed, 27 Jul 2016 20:17:51 +0000 (13:17 -0700)]
altos: Don't access cc1120 SPI bus during recv after abort has started
When the receive timeout happens, the radio may still interrupt while
the SPI bus is getting shut down. If this happens, the interrupt
handler shouldn't touch the SPI bus at all as it may well be turned
off, which would cause the receive function to wedge waiting for a spi
byte transfer to happen.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 27 Jul 2016 19:24:27 +0000 (12:24 -0700)]
altos: Keep telemetry and command output from interleaving
When monitoring telemetry, the frame needs to be sent together on one
line, not split with the output of a command (like 'a') mixed in.
Use a mutex for products with monitoring to keep command output and
telemetry output each on separate lines.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 2 Jul 2016 18:00:01 +0000 (20:00 +0200)]
altos: Add STM32F0 beep and SPI byte API.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Jul 2016 04:06:23 +0000 (21:06 -0700)]
altosuilib: Show indicator when they switch from invalid back to valid
The 'hide' value wasn't getting reset to 'false' each time the state
of the indicators was checked, so indicators would get hidden and then
never shown again.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Jul 2016 04:06:05 +0000 (21:06 -0700)]
Bump version to 1.6.5.1 after 1.6.5 release
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 12 Jul 2016 22:53:47 +0000 (15:53 -0700)]
altos: Add telemetrum v3.0
Like Telemetrum v2.0, but with cc1200 instead of cc1120
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 5 Jul 2016 16:03:49 +0000 (18:03 +0200)]
Switch from GPLv2 to GPLv2+
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Tue, 5 Jul 2016 08:21:29 +0000 (10:21 +0200)]
remove debian/ from master branch, it should live only on the debian branch
Bdale Garbee [Mon, 4 Jul 2016 22:48:07 +0000 (00:48 +0200)]
updates made during 1.6.5 release process
Keith Packard [Sun, 3 Jul 2016 10:00:10 +0000 (12:00 +0200)]
doc: Build 1.6.5 release notes
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 2 Jul 2016 20:52:38 +0000 (22:52 +0200)]
Credit Chuck Haskin for helping fix the SPI bug.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 2 Jul 2016 20:08:58 +0000 (22:08 +0200)]
Bump to 1.6.5. Add preliminary release notes
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 1 Jul 2016 03:43:03 +0000 (20:43 -0700)]
altos/cc1111: Remove 'show tasks' command
This saves space on cc1111 parts.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 21:22:32 +0000 (14:22 -0700)]
Bump to testing version 1.6.4.2
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 30 Jun 2016 01:41:24 +0000 (18:41 -0700)]
altos: Use FIFO_THR pin for cc1120 transmit buffering
Instead of reading NUM_TXBYTES, set the FIFO_THR pin to indicate when
64 bytes are available in the buffer.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 30 Jun 2016 01:33:56 +0000 (18:33 -0700)]
altos: Leave USB enabled in flight with -DDEBUG=1
This leaves the command line available for diagnostics when debugging.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 19:55:30 +0000 (12:55 -0700)]
altos/stm: clean up ao_exti_enable
Was computing (1 << pin) twice for no good reason.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 19:54:31 +0000 (12:54 -0700)]
altos: Make task list output more useful
Add the timeout value and task id
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 23:07:22 +0000 (16:07 -0700)]
altos/telemini-v2.0: Remove show tasks command
There's not enough memory for this command, and it isn't necessary.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 19:52:37 +0000 (12:52 -0700)]
altos: Make ao_delay(0) not wait forever
ao_delay() is implemented on top of ao_sleep_for, and ao_sleep_for
uses the timeout value of 0 to indicate an infinite timeout. Calls to
ao_delay for 0 ticks would unintentionally hit this case and end up
waiting forever.x
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 19:49:16 +0000 (12:49 -0700)]
altos: cc1200: use FIFO threshold pin output for APRS buffering
Instead of polling the device for fifo space, just use the available
pin configuration to figure out if there is enough space for a single
APRS buffer. Then set the APRS buffer size to match the fifo threshold
setting in the chip so that we know we can write the whole APRS buffer
once the pin says there's space.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:03:34 +0000 (17:03 -0700)]
altos: Add debug check for irq block when editing task queues
List manipulation operations are not atomic, so interrupts need to be
blocked while changing them.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 01:40:46 +0000 (18:40 -0700)]
altos/drivers: Use more reliable byte interface for CC1120 reception
This replaces direct register access with function calls to allow that
code to respect the hardware requirements.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 01:39:31 +0000 (18:39 -0700)]
altos/stm: Add better byte-level SPI api
This provides inline functions for sending and receiving individual
bytes, and setup/finish functions to wrap them in. This make the byte
sending respect the SPI hardware interface requirements.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 01:37:49 +0000 (18:37 -0700)]
altos/stm: Clean up spi_enable/disable_index functions
These had an extra level of switch nesting for no good reason.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 28 Jun 2016 06:25:01 +0000 (23:25 -0700)]
altos/stm: move spi execution to common ao_spi_run
This regularizes SPI hardware use and ensures that the device is
turned off after it has been used and that the status register is back
to 'normal' the next time through.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 28 Jun 2016 06:26:20 +0000 (23:26 -0700)]
altos: Add STM SPI debugging
This dumps out the SPI hardware state and history of SPI operations
when compiled with -DDEBUG=1. Without that, this patch does nothing.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 28 Jun 2016 00:26:19 +0000 (17:26 -0700)]
altos: Add STM DMA debugging
This provides a command that shows current DMA operations when
compiled with -DDEBUG=1. Without that, this patch has no effect.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 01:25:44 +0000 (18:25 -0700)]
altos/stm: Change ao_spi_send_sync definition to take const source
Provides for a bit better error checking.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:15:27 +0000 (17:15 -0700)]
altos/stm: Add more SPI status register bits
These weren't the original version of the docs that we had.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:12:48 +0000 (17:12 -0700)]
altos/stm: use 0xff for dma mutex value for allocated mutexes
DMA channels which are 'allocated' can't be shared. Instead of using
the value '1' in the related 'mutex', use 0xff which won't match any task.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:11:38 +0000 (17:11 -0700)]
altos/stm: remove ao_dma_abort
This function isn't used anywhere.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:09:00 +0000 (17:09 -0700)]
altos: Move comment in ao_sleep_for next to related code
The comment got moved to the wrong place
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 29 Jun 2016 00:04:59 +0000 (17:04 -0700)]
altos: Block interrupts while waking tasks sleeping on timers.
Interrupts may not be blocked in the timer ISR, but they need to be
while walking the pending timer list and moving tasks back to the run
queue.
Signed-off-by: Keith Packard <keithp@keithp.com>