diff options
Diffstat (limited to 'src/telerepeat-v1.0')
| -rw-r--r-- | src/telerepeat-v1.0/Makefile | 100 | ||||
| -rw-r--r-- | src/telerepeat-v1.0/ao_pins.h | 111 | ||||
| -rw-r--r-- | src/telerepeat-v1.0/ao_telerepeat.c | 47 | 
3 files changed, 258 insertions, 0 deletions
| diff --git a/src/telerepeat-v1.0/Makefile b/src/telerepeat-v1.0/Makefile new file mode 100644 index 00000000..17f68377 --- /dev/null +++ b/src/telerepeat-v1.0/Makefile @@ -0,0 +1,100 @@ +# +# TeleRepeat build file +# + +TELEREPEAT_VER=1.0 +TELEREPEAT_DEF=1_0 + +vpath %.c ..:../kernel:../cc1111:../drivers:../product +vpath %.h ..:../kernel:../cc1111:../drivers:../product +vpath ao-make-product.5c ../util + +ifndef VERSION +include ../Version +endif + +INC = \ +	ao.h \ +	ao_pins.h \ +	ao_arch.h \ +	ao_arch_funcs.h \ +	cc1111.h \ +	ao_product.h + +CORE_SRC = \ +	ao_cmd.c \ +	ao_config.c \ +	ao_monitor.c \ +	ao_mutex.c \ +	ao_panic.c \ +	ao_state.c \ +	ao_stdio.c \ +	ao_task.c \ +	ao_forward.c \ +	ao_storage.c \ +	ao_freq.c + +CC1111_SRC = \ +	ao_dbg.c \ +	ao_adc.c \ +	ao_dma.c \ +	ao_led.c \ +	ao_packet.c \ +	ao_intflash.c \ +	ao_packet_master.c \ +	ao_radio.c \ +	ao_romconfig.c \ +	ao_serial.c \ +	ao_string.c \ +	ao_timer.c \ +	ao_usb.c \ +	_bp.c + +DRIVER_SRC = \ +	ao_btm.c + +PRODUCT_SRC = \ +	ao_telerepeat.c + +SRC = \ +	$(CORE_SRC) \ +	$(CC1111_SRC) \ +	$(DRIVER_SRC) \ +	$(PRODUCT_SRC) + +PROGNAME = telerepeat-v$(TELEREPEAT_VER) +PROG = $(PROGNAME)-$(VERSION).ihx +PRODUCT=TeleRepeat-v$(TELEREPEAT_VER) +PRODUCT_DEF=-DTELEREPEAT_V_$(TELEREPEAT_DEF) +IDPRODUCT=0x000e +CODESIZE=0x7800 + +include ../cc1111/Makefile.cc1111 + +NICKLE=nickle +CHECK_STACK=sh ../util/check-stack + +V=0 +# The user has explicitly enabled quiet compilation. +ifeq ($(V),0) +quiet = @printf "  $1 $2 $@\n"; $($1) +endif +# Otherwise, print the full command line. +quiet ?= $($1) + +all: $(PROG) + +$(PROG): $(REL) Makefile +	$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(REL) +	$(call quiet,CHECK_STACK) ../cc1111/ao_arch.h $(PMEM) || rm $@ + +ao_product.h: ao-make-product.5c ../Version +	$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@ + +distclean:	clean + +clean: clean-cc1111 + +install: + +uninstall: diff --git a/src/telerepeat-v1.0/ao_pins.h b/src/telerepeat-v1.0/ao_pins.h new file mode 100644 index 00000000..2a7dbd3b --- /dev/null +++ b/src/telerepeat-v1.0/ao_pins.h @@ -0,0 +1,111 @@ +/* + * Copyright © 2010 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef _AO_PINS_H_ +#define _AO_PINS_H_ + +#define HAS_RADIO		1 +#define HAS_RADIO_FORWARD	1 +#define HAS_FLIGHT		0 +#define HAS_USB			1 +#define HAS_BEEP		0 +#define HAS_SERIAL_1		1 +#define HAS_SERIAL_1_ALT_1	1 +#define HAS_SERIAL_1_ALT_2	0 +#define HAS_SERIAL_1_HW_FLOW	1 +#define USE_SERIAL_1_STDIN	1 +#define DELAY_SERIAL_1_STDIN	1 +#define HAS_DBG			1 +#define HAS_EEPROM		1 +#define HAS_LOG			0 +#define USE_INTERNAL_FLASH	1 +#define HAS_BTM			1 +#define DBG_ON_P1 		1 +#define DBG_ON_P0 		0 +#define PACKET_HAS_MASTER	1 +#define PACKET_HAS_SLAVE	0 +#define AO_LED_RED		1 +#define AO_LED_BLUE		2 +#define LEDS_AVAILABLE		(AO_LED_RED|AO_LED_BLUE) +#define AO_MONITOR_LED		AO_LED_RED +#define AO_BT_LED		AO_LED_BLUE +#define BT_LINK_ON_P2		0 +#define BT_LINK_ON_P1		1 +#define BT_LINK_PIN_INDEX	7 +#define BT_LINK_PIN		P1_7 +#define HAS_MONITOR		1 +#define HAS_MONITOR_PUT		1 +#define LEGACY_MONITOR		0 +#define HAS_TELEMETRY		0 +#define AO_RADIO_REG_TEST	1 + +#define HAS_ADC			1 +#define AO_PAD_ADC_BATT		0 +#define AO_ADC_PINS		(1 << AO_PAD_ADC_BATT) + +struct ao_adc { +	int16_t		batt; +}; + +#define AO_ADC_DUMP(p)							\ +	printf ("tick: %5u batt %5d\n",					\ +		(p)->tick,						\ +		(p)->adc.batt) + +#define FETCH_ADC() do {						\ +		a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc.batt); \ +		a[0] = ADCL;						\ +		a[1] = ADCH;						\ +	} while (0) + +#if DBG_ON_P1 + +	#define DBG_CLOCK	(1 << 4)	/* mi0 */ +	#define DBG_DATA	(1 << 5)	/* mo0 */ +	#define DBG_RESET_N	(1 << 3)	/* c0 */ + +	#define DBG_CLOCK_PIN	(P1_4) +	#define DBG_DATA_PIN	(P1_5) +	#define DBG_RESET_N_PIN	(P1_3) + +	#define DBG_PORT_NUM	1 +	#define DBG_PORT	P1 +	#define DBG_PORT_SEL	P1SEL +	#define DBG_PORT_INP	P1INP +	#define DBG_PORT_DIR	P1DIR + +#endif /* DBG_ON_P1 */ + +#if DBG_ON_P0 + +	#define DBG_CLOCK	(1 << 3) +	#define DBG_DATA	(1 << 4) +	#define DBG_RESET_N	(1 << 5) + +	#define DBG_CLOCK_PIN	(P0_3) +	#define DBG_DATA_PIN	(P0_4) +	#define DBG_RESET_N_PIN	(P0_5) + +	#define DBG_PORT_NUM	0 +	#define DBG_PORT	P0 +	#define DBG_PORT_SEL	P0SEL +	#define DBG_PORT_INP	P0INP +	#define DBG_PORT_DIR	P0DIR + +#endif /* DBG_ON_P0 */ + +#endif /* _AO_PINS_H_ */ diff --git a/src/telerepeat-v1.0/ao_telerepeat.c b/src/telerepeat-v1.0/ao_telerepeat.c new file mode 100644 index 00000000..21bf8a73 --- /dev/null +++ b/src/telerepeat-v1.0/ao_telerepeat.c @@ -0,0 +1,47 @@ +/* + * Copyright © 2011 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#include "ao.h" +#include "ao_forward.h" + +void +main(void) +{ +	ao_clock_init(); + +	/* Turn on the LED until the system is stable */ +	ao_led_init(LEDS_AVAILABLE); +	ao_led_on(AO_LED_RED); + +	ao_task_init(); + +	ao_timer_init(); +	ao_cmd_init(); +	ao_usb_init(); +	ao_monitor_init(); +	ao_radio_init(); +	ao_packet_master_init(); +	ao_adc_init(); +	ao_btm_init(); +	ao_monitor_forward_init(); +	ao_storage_init(); +#if HAS_DBG +	ao_dbg_init(); +#endif +	ao_config_init(); +	ao_start_scheduler(); +} | 
