From 24167015705ae831692b95735968b04a876f935e Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 4 Apr 2014 23:34:48 -0700 Subject: altos: Rename 'core' to 'kernel' core remains a bad name to use -- dirvish skips files (and directories, it seems) with that name. Signed-off-by: Keith Packard --- src/micropeak/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/micropeak') diff --git a/src/micropeak/Makefile b/src/micropeak/Makefile index dcc32874..f4c57076 100644 --- a/src/micropeak/Makefile +++ b/src/micropeak/Makefile @@ -2,7 +2,7 @@ # Tiny AltOS build # # -vpath % ../attiny:../drivers:../core:../product:.. +vpath % ../attiny:../drivers:../kernel:../product:.. vpath ao-make-product.5c ../util vpath make-altitude-pa ../util @@ -47,7 +47,7 @@ INC=\ IDPRODUCT=0 PRODUCT=MicroPeak-v0.1 PRODUCT_DEF=-DMICROPEAK -CFLAGS = $(PRODUCT_DEF) -I. -I../attiny -I../core -I.. -I../drivers -I../product +CFLAGS = $(PRODUCT_DEF) -I. -I../attiny -I../kernel -I.. -I../drivers -I../product CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O2 -mcall-prologues -DATTINY NICKLE=nickle -- cgit v1.2.3 From 350d941a825d0271933de0bfdea82d3af5744c21 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 6 Apr 2014 20:14:49 -0700 Subject: altos: Provide stable binaries for MicroPeak Publish MicroPeak .hex file to LLC repo and install it from there, rather than rebuilding it locally. This ensures that the installed bits don't depend on local configuration of any kind. Signed-off-by: Keith Packard --- src/micropeak/Makefile | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/micropeak') diff --git a/src/micropeak/Makefile b/src/micropeak/Makefile index f4c57076..335a96e5 100644 --- a/src/micropeak/Makefile +++ b/src/micropeak/Makefile @@ -8,6 +8,9 @@ vpath make-altitude-pa ../util include ../avr/Makefile.defs +PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries +PUBLISH_FILE=$(PUBLISH_DIR)/$(PROG)-$(VERSION).hex + MCU=attiny85 DUDECPUTYPE=t85 #PROGRAMMER=stk500v2 -P usb @@ -81,8 +84,8 @@ $(PROG).hex: $(PROG) load: $(PROG).hex $(LOADCMD) $(LOADARG)$(PROG).hex -load-slow: $(PROG).hex - $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex +#load-slow: $(PROG).hex +# $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex ao_product.h: ao-make-product.5c ../Version $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@ @@ -98,6 +101,16 @@ clean: rm -f *.o $(PROG) $(PROG).hex rm -f ao_product.h + +publish: $(PROG).hex + cp -a $(PROG).hex $(PUBLISH_FILE) + +load-product: + $(LOADCMD) $(LOADARG)$(PUBLISH_FILE) + +load-product-slow: + $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PUBLISH_FILE) + ../altitude-pa.h: make-altitude-pa nickle $< > $@ -- cgit v1.2.3 From 4211c59e585545817b3cac02b41bb73106d6403e Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 6 Apr 2014 22:27:37 -0700 Subject: altos: Fix nanopeak compile Nanopeak uses port B bit 3 for the LED instead of bit 4. Fix the async code to support arbitrary bits for the serial LED. Signed-off-by: Keith Packard --- src/attiny/ao_async.c | 45 ++++++++++++++++++++++++++++++++++----------- src/micropeak/Makefile | 4 ++-- 2 files changed, 36 insertions(+), 13 deletions(-) (limited to 'src/micropeak') diff --git a/src/attiny/ao_async.c b/src/attiny/ao_async.c index 9f7fd6d7..f64f7bde 100644 --- a/src/attiny/ao_async.c +++ b/src/attiny/ao_async.c @@ -52,10 +52,6 @@ ao_async_byte(uint8_t byte) ao_arch_block_interrupts(); -#if AO_LED_SERIAL != 4 -#error "expect AO_LED_SERIAL to be 4" -#endif - /* Ok, this is a bit painful. * We need this loop to be precisely timed, which * means knowing exactly how many instructions will @@ -72,18 +68,45 @@ ao_async_byte(uint8_t byte) " andi %[v], %[led_mask]\n" // mask to clear LED bit " mov %[bit], %[w_lo]\n" // get current data byte " andi %[bit], 0x01\n" // get current data bit - " swap %[bit]\n" // rotate by 4 (AO_LED_SERIAL is 4) - " andi %[bit], 0xf0\n" // mask off other 4 bits - " or %[v], %[bit]\n" // add to register - " out %[port], %[v]\n" // write current value - " lsr %[w_hi]\n" // shift data - " ror %[w_lo]\n" // ... +#if AO_LED_SERIAL >= 1 + " add %[bit],%[bit]\n" // shift by one +#else + " nop\n" +#endif +#if AO_LED_SERIAL >= 2 + " add %[bit],%[bit]\n" // shift by one +#else + " nop\n" +#endif +#if AO_LED_SERIAL >= 3 + " add %[bit],%[bit]\n" // shift by one +#else " nop\n" +#endif +#if AO_LED_SERIAL >= 4 + " add %[bit],%[bit]\n" // shift by one +#else " nop\n" +#endif +#if AO_LED_SERIAL >= 5 + " add %[bit],%[bit]\n" // shift by one +#else " nop\n" +#endif +#if AO_LED_SERIAL >= 6 + " add %[bit],%[bit]\n" // shift by one +#else " nop\n" +#endif +#if AO_LED_SERIAL >= 7 + " add %[bit],%[bit]\n" // shift by one +#else " nop\n" - +#endif + " or %[v], %[bit]\n" // add to register + " out %[port], %[v]\n" // write current value + " lsr %[w_hi]\n" // shift data + " ror %[w_lo]\n" // ... " nop\n" " nop\n" " nop\n" diff --git a/src/micropeak/Makefile b/src/micropeak/Makefile index 335a96e5..6ae3d0be 100644 --- a/src/micropeak/Makefile +++ b/src/micropeak/Makefile @@ -84,8 +84,8 @@ $(PROG).hex: $(PROG) load: $(PROG).hex $(LOADCMD) $(LOADARG)$(PROG).hex -#load-slow: $(PROG).hex -# $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex +load-slow: $(PROG).hex + $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex ao_product.h: ao-make-product.5c ../Version $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@ -- cgit v1.2.3