summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* altos/lisp: add length, pack, unpack and flushKeith Packard2016-11-17
| | | | | | lots more builtins Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Add towers of hanoi exampleKeith Packard2016-11-17
| | | | | | Uses vt100 escape sequences to animate the display even. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Deal with memory compation in the middle of operationsKeith Packard2016-11-17
| | | | | | | | Handle memory compaction in places where we've got pointers into the heap across an allocation operation. Either re-compute the values from managed global references or add new roots across the allocation. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Improve lisp test program UIKeith Packard2016-11-17
| | | | | | | Add a prompt for stdin, read from other files on command line before stdin. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Make read() return eof atom on end of fileKeith Packard2016-11-17
| | | | | | Also make it an exception to hit eof in the middle of an sexpr. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: use regular read-eval-print loop for make constKeith Packard2016-11-17
| | | | | | No need to open code this sequence of operations. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: add progn, while, read and evalKeith Packard2016-11-17
| | | | | | | | 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>
* altos/lisp: Clean up OS integration bits, add defunKeith Packard2016-11-17
| | | | | | | 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>
* altos/lisp: macros appear to work nowKeith Packard2016-11-17
| | | | | | | | 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>
* altos/lisp: working on lexical scopingKeith Packard2016-11-17
| | | | | | Not working yet Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lambdakey-v1.0: Tweak memory allocationsKeith Packard2016-11-17
| | | | | | With non-recursive GC, more memory is available for the heap Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: convert GC to non-recursiveKeith Packard2016-11-17
| | | | | | | 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>
* altos/lisp: more GC issues. add patomKeith Packard2016-11-17
| | | | | | | 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>
* altos/lisp: make sure stack->formals_last gets moved during GCKeith Packard2016-11-17
| | | | | | Failing this leads to broken formals chains Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Change GC move APIKeith Packard2016-11-17
| | | | | | | | 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>
* altos/lisp: get builtin macros working againKeith Packard2016-11-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Start rewriting eval as state machineKeith Packard2016-11-17
| | | | | | | 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>
* altos: Add lambdakeyKeith Packard2016-11-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add lambda support to lispKeith Packard2016-11-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Separate out values from atomsKeith Packard2016-11-17
| | | | | | | | | | | 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>
* altos/lisp: add set/setq and ' in readerKeith Packard2016-11-17
| | | | | | Along with other small fixes Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add lisp to include directoriesKeith Packard2016-11-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/kernel: Make ao_cmd_readline public. Return char from ao_cmd_lex.Keith Packard2016-11-17
| | | | | | | With these two changes, the readline function can be used by other code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lisp: Change lisp objects to use ao_poly everywhere. Add constKeith Packard2016-11-17
| | | | | | | | | | | 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>
* altos: Add lisp readerKeith Packard2016-11-17
|
* Add first lisp bitsKeith Packard2016-11-17
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* ao-bringup: Improve EasyMini turnon and test scriptsKeith Packard2016-11-17
| | | | | | | | 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>
* altos/test: Fix testsKeith Packard2016-10-30
| | | | | | | 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>
* altos/nucleo-32: Add basic support for STM32F042 Nucleo-32 boardKeith Packard2016-10-30
| | | | | | This hooks up the LED, USB and the USART. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add USART supportKeith Packard2016-10-30
| | | | | | | 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>
* augment TeleDongle turn on script to support serial number on command lineBdale Garbee2016-10-02
|
* Update pdclib to version using arm-specific 'ar' programKeith Packard2016-09-22
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* Fix release note html to remove xml bitsKeith Packard2016-09-05
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* Remove pyro wizard file from masterKeith Packard2016-09-05
| | | | | | This isn't done yet. Signed-off-by: Keith Packard <keithp@keithp.com>
* Bump version to 1.6.8Keith Packard2016-09-05
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Don't ship TeleMetrum v3.0 firmware (yet)Keith Packard2016-09-05
| | | | | | We haven't finished this yet, so don't deliver firmware for it. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add 1.6.8 release notesKeith Packard2016-09-03
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Set SPI slave DMA priority to HIGH/VERY_HIGHKeith Packard2016-09-03
| | | | | | | | | 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>
* altos/stm: Set i2c recv DMA to HIGHKeith Packard2016-09-03
| | | | | | | 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>
* altos/stm: Set MISO DMA priority to HIGH to avoid OVRKeith Packard2016-09-03
| | | | | | | | | 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>
* altos/stm: Create funcs to set SPI DMA parametersKeith Packard2016-09-03
| | | | | | | | 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>
* altos/stm: Make ao_spi_duplex out pointer constKeith Packard2016-09-03
| | | | | | Provides a bit better typechecking opportunities for this function. Signed-off-by: Keith Packard <keithp@keithp.com>
* Bump version to 1.6.7.1Keith Packard2016-09-02
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* ao-tools/ao-cal-freq: Re-open usb device each tryKeith Packard2016-09-02
| | | | | | | | 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>
* ao-tools/ao-usbload: Fix -f flag, remove debug hacksKeith Packard2016-09-02
| | | | | | | | 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>
* ao-bringup/turnon_telemetrum: serial on cmd line. Loop on accel failKeith Packard2016-09-02
| | | | | | These make the script easier to use Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Deal with connect failure in AltosConfigTDKeith Packard2016-09-02
| | | | | | | | 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>
* ao-tools/ao-cal-freq: --verbose option has no parameterKeith Packard2016-08-31
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* ao-bringup: telemega allow serial on command line, loop on accel failKeith Packard2016-08-31
| | | | | | | | | | 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>
* altos/cc1120: remove unused status from ao_radio_fifo_write_stopKeith Packard2016-08-29
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>