| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
Note that the ADC code is running very slowly as required by the high
impedance dividers on the TeleMini v3.0 pyro circuits.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The cc1200 can't run SPI faster than 10MHz, so make sure every device
picks a SPI clock slower than that.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
In case they don't have both a red and green LED.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Let applications define HAS_BOOT_LOADER on their own if desired.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
If the pin usage values SPI_1_PA5_PA6_PA7 or SPI_1_PB3_PB4_PB5 aren't
defined, then the speed values for the pins aren't going to get set
correctly, which results in erratic SPI behaviour.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
TeleMini v3.0 doesn't need a boot loader, so we'll have the app run
its interrupt vector right at the bottom of the address space instead
of copying it to the bottom of ram and reconfiguring the chip to use that.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
When pulling 16 bits from the 32-bit crc, instead of just using the
low bits, xor the two halves together. This appears to even out the
number of zero and one bits.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Migrating to something more like scheme
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Something about alignment issues.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Otherwise, it will generate unaligned accesses to things fetched from
them. Sigh.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No serious changes.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Don't crash when printing null stack this way.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Get rid of the remaining duplicate defines.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Save some text space.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Collect memory, return amount free.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
Fortunately, the collector always retains the relative order between
addresses, so we can sort based on the atom address itself. This
reduces the time spent looking for names in larger (e.g. global)
frames.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Helpful to include the new source file.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
This makes move_map faster by skipping all addresses which aren't
changing.
Also changed the interface from address to offset to avoid computing
the offset multiple times.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It's not very exciting, but it's still legal
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Saves some memory.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This avoids having different values in different files, which wasn't useful.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This provides call/cc and makes 'stacks' visible to the application.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Remove extra progn wrappers now that cond, lambda and while all
support implicit ones.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Instead of always returning 'nil', let while return the last body
value.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This lets all of these execute more than one sexpr, returning the
value of the last.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Makes debugging easier
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Useful for debugging
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Cut&paste error.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No-one sets frame->_num to 0xff to hit these
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
Using ao_lisp_pool - 4 caused the compiler to whinge about computing
an address outside the bounds of the array. Sigh. Restructure the code
to do the adjustment-by-4 in the integer computations instead of the
pointer ones.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Speeds up collect a bit
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
This makes debugging programs so much harder
|
|
|
|
|
|
| |
This allows for (defun foo())
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Note range of existing chunks to exclude objects outside.
Only look at chunks which have been set to reduce loop cost.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Realizing that long-lived objects will eventually float to the bottom
of the heap, I added a simple hack to the collector that 'remembers'
the top of the heap the last time a full collect was run and then runs
incremental collects looking to shift only objects above that
boundary. That doesn't perfectly capture the bounds of transient
objects, but does manage to reduce the amount of time spent not moving
persistent objects each time through the collector.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Make the towers symmetrical instead of lopsided. Much nicer looking.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It's now in ROM.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Make space for more lisp bits!
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Added nth, or and and.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Entries from the params are bound to the formals with whatever
remaining formals there are bound to the last argument as a list.
This makes writing functions a bit easier.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Need to look at immediate lambdas as well, and also deal with
recursive functions by checking for recursion at each atom
dereference.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
This saves a pile more use of the allocator by noting when frames have
not been referenced from another frame and freeing them when they go
out of scope. Frames with references are left to the allocator to deal
with.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This function is now a builtin.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Remove exti from the build list to make things fit.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This assumes that macros are all pure functions, which should be true
for syntactic macros.
Signed-off-by: Keith Packard <keithp@keithp.com>
|