summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * altos/lisp: add progn, while, read and evalKeith Packard2017-02-20
| | | | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | Not working yet Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lambdakey-v1.0: Tweak memory allocationsKeith Packard2017-02-20
| | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | Failing this leads to broken formals chains Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Change GC move APIKeith Packard2017-02-20
| | | | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Start rewriting eval as state machineKeith Packard2017-02-20
| | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Add lambda support to lispKeith Packard2017-02-20
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Separate out values from atomsKeith Packard2017-02-20
| | | | | | | | | | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | Along with other small fixes Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/stmf0: Add lisp to include directoriesKeith Packard2017-02-20
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/kernel: Make ao_cmd_readline public. Return char from ao_cmd_lex.Keith Packard2017-02-20
| | | | | | | | | | | | | | 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 Packard2017-02-20
| | | | | | | | | | | | | | | | | | | | | | 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 Packard2017-02-20
| |
| * Add first lisp bitsKeith Packard2017-02-20
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * use elf, not ihxBdale Garbee2017-01-25
| |
| * stop using /usr/share for binaries in remaining turnon scriptsBdale Garbee2017-01-25
| |
| * altos/chaoskey: Add a metainfo for the ChaosKeyRichard Hughes2017-01-10
| | | | | | | | | | This provides the information necessary to reflash chaoskey using standard Linux device firmware tooling.
| * altos/arm: Align data so that gcc 5.4 doesn't do byte-accesses. Add -Wcast-alignKeith Packard2016-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gcc 5.4.1 tracks alignment of data through assignments, so that a uint32_t pointer which comes from byte-aligned uint8_t data: extern uint8_t foo[]; uint32_t *q = (void *) foo; Fetches and stores through this pointer are done bytewise. This is slow (meh), but if q references a device register, things to bad very quickly. This patch works around this bug in the compiler by adding __attribute__((aligned(4))) tags to some variables, or changing them from uint8_t to uint32_t. Places doing this will now be caught as I've added -Wcast-align to the compiler flags. That required adding (void *) casts, after the relevant code was checked to make sure the compiler could tell that the addresses were aligned. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/stm: Make ao_usb_set_address static. Saves a bunch of text spaceKeith Packard2016-12-12
| | | | | | | | | | | | | | I'm sure this makes the function end up in-lined, which saves enough text space to fit the flash loader in ROM again. 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>
* | prepare to uploaddebian/1.6.8-5Bdale Garbee2017-04-22
| |
* | altos/telegps: Inherit LDFLAGS from lpc make specificationKeith Packard2017-04-22
| | | | | | | | | | | | | | Somethings messed up with cortex-M0 linking, and this isn't helping as it overrides the LDFLAGS coming from the architecture. Signed-off-by: Keith Packard <keithp@keithp.com>
* | ao-tools/ao-flash-lpc: Adapt to current openocd LPC supportKeith Packard2017-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Openocd 0.9.0 has generalized the lpc11xx support for all lpc11xx processors, not just the lpc11u14. This replaces the specific lpc11u14.cfg with the general lpc11xx.cfg file. Unlike the build we were using, this doesn't adjust the 'verify' command to adapt for the checksum which gets added during the flashing process. Hence, we disable verification and trust that if the flash loader works to load the OS, it's fine. Signed-off-by: Keith Packard <keithp@keithp.com>
* | ao-elftohex: Add conditions for skipping ELF sectionsKeith Packard2017-04-22
| | | | | | | | | | | | | | | | | | Skip sections with size 0, or which are of type SHT_NOBITS or which don't have the SHF_ALLOC flag set. This avoids crashing on sections which don't have any data to copy. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos/lpc,altos/stmf0: Use -n flag to work around link editor issueKeith Packard2017-04-22
| | | | | | | | | | | | | | | | | | Something changed in the link editor which makes it complain about 'no space for program headers' on LPC and STMF0 builds. Somehow, adding the '-n' flag to the linking step fixes it. It doesn't appear to break the build, so I guess it's ok? Signed-off-by: Keith Packard <keithp@keithp.com>
* | need patch to handle cherry-pickdebian/1.6.8-4Bdale Garbee2017-01-25
| |
* | add changelog entry for Debian package buildBdale Garbee2017-01-25
| |
* | altos/arm: Align data so that gcc 5.4 doesn't do byte-accesses. Add -Wcast-alignKeith Packard2017-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gcc 5.4.1 tracks alignment of data through assignments, so that a uint32_t pointer which comes from byte-aligned uint8_t data: extern uint8_t foo[]; uint32_t *q = (void *) foo; Fetches and stores through this pointer are done bytewise. This is slow (meh), but if q references a device register, things to bad very quickly. This patch works around this bug in the compiler by adding __attribute__((aligned(4))) tags to some variables, or changing them from uint8_t to uint32_t. Places doing this will now be caught as I've added -Wcast-align to the compiler flags. That required adding (void *) casts, after the relevant code was checked to make sure the compiler could tell that the addresses were aligned. Signed-off-by: Keith Packard <keithp@keithp.com>
* | need a patch to handle cherry-pickdebian/1.6.8-3Bdale Garbee2016-12-13
| |
* | update changelog for Debian buildBdale Garbee2016-12-13
| |
* | altos/stm: Make ao_usb_set_address static. Saves a bunch of text spaceKeith Packard2016-12-13
| | | | | | | | | | | | | | I'm sure this makes the function end up in-lined, which saves enough text space to fit the flash loader in ROM again. Signed-off-by: Keith Packard <keithp@keithp.com>
* | we need a patch to handle pdclib changedebian/1.6.8-2Bdale Garbee2016-10-02
| |
* | update changelog for Debian buildBdale Garbee2016-10-02
| |
* | Update pdclib to version using arm-specific 'ar' programKeith Packard2016-10-02
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* | update changelog for Debian builddebian/1.6.8-1Bdale Garbee2016-09-05
| |
* | Merge branch 'branch-1.6' into debianBdale Garbee2016-09-05
|\ \
| * | update Changelog for release1.6.8branch-1.6Bdale Garbee2016-09-05
| | |
| * | Merge branch 'master' into branch-1.6Bdale Garbee2016-09-05
| |\|