diff options
Diffstat (limited to 'src/cortexelf-v1')
| -rw-r--r-- | src/cortexelf-v1/.gitignore | 3 | ||||
| -rw-r--r-- | src/cortexelf-v1/Makefile | 43 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_cortexelf.c | 8 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_pins.h | 2 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_scheme_os.h (renamed from src/cortexelf-v1/ao_lisp_os.h) | 34 | ||||
| -rw-r--r-- | src/cortexelf-v1/ao_scheme_os_save.c (renamed from src/cortexelf-v1/ao_lisp_os_save.c) | 20 | 
6 files changed, 61 insertions, 49 deletions
diff --git a/src/cortexelf-v1/.gitignore b/src/cortexelf-v1/.gitignore new file mode 100644 index 00000000..0189131b --- /dev/null +++ b/src/cortexelf-v1/.gitignore @@ -0,0 +1,3 @@ +cortexelf-v1*.elf +cortexelf-v1*.hex +ao_product.h diff --git a/src/cortexelf-v1/Makefile b/src/cortexelf-v1/Makefile index 8cc6ce31..12c658dc 100644 --- a/src/cortexelf-v1/Makefile +++ b/src/cortexelf-v1/Makefile @@ -4,7 +4,8 @@  #  include ../stm/Makefile.defs -LDFLAGS=-L../stm -Wl,-Tcortexelf.ld +include ../scheme/Makefile-inc +  INC = \  	ao.h \ @@ -19,15 +20,12 @@ INC = \  	math.h \  	ao_mpu.h \  	stm32l.h \ -	math.h \  	ao_vga.h \  	ao_draw.h \  	ao_draw_int.h \  	ao_font.h \  	ao_ps2.h \ -	ao_lisp.h \ -	ao_lisp_const.h \ -	ao_lisp_os.h \ +	$(SCHEME_HDRS) \  	ao_flip_bits.h \  	Makefile @@ -46,6 +44,7 @@ ALTOS_SRC = \  	ao_cmd.c \  	ao_config.c \  	ao_task.c \ +	ao_errno.c \  	ao_stdio.c \  	ao_panic.c \  	ao_timer.c \ @@ -74,23 +73,8 @@ ALTOS_SRC = \  	ao_event.c \  	ao_1802.c \  	ao_hex.c \ -	ao_lisp_lex.c \ -	ao_lisp_mem.c \ -	ao_lisp_cons.c \ -	ao_lisp_eval.c \ -	ao_lisp_string.c \ -	ao_lisp_atom.c \ -	ao_lisp_int.c \ -	ao_lisp_poly.c \ -	ao_lisp_builtin.c \ -	ao_lisp_read.c \ -	ao_lisp_rep.c \ -	ao_lisp_frame.c \ -	ao_lisp_error.c \ -	ao_lisp_lambda.c \ -	ao_lisp_save.c \ -	ao_lisp_stack.c \ -	ao_lisp_os_save.c \ +	$(SCHEME_SRCS) \ +	ao_scheme_os_save.c \  	$(PROFILE) \  	$(SAMPLE_PROFILE) \  	$(STACK_GUARD) @@ -99,12 +83,21 @@ PRODUCT=CortexELF-v1  PRODUCT_DEF=-DCORTEXELF  IDPRODUCT=0x000a -CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g -  PROGNAME=cortexelf-v1  PROG=$(PROGNAME)-$(VERSION).elf  HEX=$(PROGNAME)-$(VERSION).ihx +MAP=$(PROG).map + +MAPFILE=-Wl,-M=$(MAP) + +LDFLAGS=-L../stm -L/local/newlib-mini/arm-none-eabi/lib/thumb/v7-m/ -Wl,-Tcortexelf.ld $(MAPFILE) -nostartfiles +AO_CFLAGS=-I. -I../stm -I../kernel -I../drivers -I../draw -I../scheme -I.. -I/local/newlib-mini/arm-none-eabi/include +LIBS=-lc -lm -lgcc + +CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g + +  SRC=$(ALTOS_SRC) ao_cortexelf.c  OBJ=$(SRC:.c=.o) @@ -130,7 +123,7 @@ clean::  ao_flip_bits.h: ao_flip_bits.5c  	nickle ao_flip_bits.5c > $@ -include ../lisp/Makefile-lisp +include ../scheme/Makefile-scheme  install: diff --git a/src/cortexelf-v1/ao_cortexelf.c b/src/cortexelf-v1/ao_cortexelf.c index 61a9d219..5ed78bf0 100644 --- a/src/cortexelf-v1/ao_cortexelf.c +++ b/src/cortexelf-v1/ao_cortexelf.c @@ -27,7 +27,7 @@  #include <ao_console.h>  #include <ao_sdcard.h>  #include <ao_fat.h> -#include <ao_lisp.h> +#include <ao_scheme.h>  #include <ao_button.h>  #include <ao_event.h>  #include <ao_as1107.h> @@ -188,8 +188,8 @@ ao_console_send(void)  	}  } -static void lisp_cmd() { -	ao_lisp_read_eval_print(); +static void scheme_cmd() { +	ao_scheme_read_eval_print();  }  static void @@ -224,7 +224,7 @@ __code struct ao_cmds ao_demo_cmds[] = {  	{ ao_ps2_read_keys, "K\0Read keys from keyboard" },  	{ ao_console_send, "C\0Send data to console, end with ~" },  	{ ao_serial_blather, "S\0Blather on serial ports briefly" }, -	{ lisp_cmd, "l\0Run lisp interpreter" }, +	{ scheme_cmd, "l\0Run scheme interpreter" },  	{ led_cmd, "L start value\0Show value (byte) at digit start" },  	{ 0, NULL }  }; diff --git a/src/cortexelf-v1/ao_pins.h b/src/cortexelf-v1/ao_pins.h index 258ffe31..c2bbf2d2 100644 --- a/src/cortexelf-v1/ao_pins.h +++ b/src/cortexelf-v1/ao_pins.h @@ -62,6 +62,8 @@  #define USE_SERIAL_2_STDIN	1  #define SERIAL_2_PA2_PA3	0  #define SERIAL_2_PD5_PD6	1 +#define USE_SERIAL_2_FLOW	0 +#define USE_SERIAL_2_SW_FLOW	0  #define HAS_SERIAL_3		0  #define USE_SERIAL_3_STDIN	0 diff --git a/src/cortexelf-v1/ao_lisp_os.h b/src/cortexelf-v1/ao_scheme_os.h index d0c1f7b7..58e4f5b3 100644 --- a/src/cortexelf-v1/ao_lisp_os.h +++ b/src/cortexelf-v1/ao_scheme_os.h @@ -15,16 +15,22 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -#ifndef _AO_LISP_OS_H_ -#define _AO_LISP_OS_H_ +#ifndef _AO_SCHEME_OS_H_ +#define _AO_SCHEME_OS_H_  #include "ao.h" -#define AO_LISP_POOL_TOTAL		16384 -#define AO_LISP_SAVE			1 +#define AO_SCHEME_POOL_TOTAL		16384 +#define AO_SCHEME_SAVE			1 + +#ifndef __BYTE_ORDER +#define	__LITTLE_ENDIAN	1234 +#define	__BIG_ENDIAN	4321 +#define __BYTE_ORDER	__LITTLE_ENDIAN +#endif  static inline int -ao_lisp_getc() { +ao_scheme_getc() {  	static uint8_t	at_eol;  	int c; @@ -39,27 +45,35 @@ ao_lisp_getc() {  }  static inline void -ao_lisp_os_flush(void) +ao_scheme_os_flush(void)  {  	flush();  }  static inline void -ao_lisp_abort(void) +ao_scheme_abort(void)  {  	ao_panic(1);  }  static inline void -ao_lisp_os_led(int led) +ao_scheme_os_led(int led)  {  	(void) led;  } +#define AO_SCHEME_JIFFIES_PER_SECOND	AO_HERTZ +  static inline void -ao_lisp_os_delay(int delay) +ao_scheme_os_delay(int delay) +{ +	ao_delay(delay); +} + +static inline int +ao_scheme_os_jiffy(void)  { -	ao_delay(AO_MS_TO_TICKS(delay)); +	return ao_tick_count;  }  #endif diff --git a/src/cortexelf-v1/ao_lisp_os_save.c b/src/cortexelf-v1/ao_scheme_os_save.c index 7c853990..4cec79c6 100644 --- a/src/cortexelf-v1/ao_lisp_os_save.c +++ b/src/cortexelf-v1/ao_scheme_os_save.c @@ -13,25 +13,25 @@   */  #include <ao.h> -#include <ao_lisp.h> +#include <ao_scheme.h>  #include <ao_flash.h>  extern uint8_t	__flash__[];  /* saved variables to rebuild the heap -   ao_lisp_atoms -   ao_lisp_frame_global +   ao_scheme_atoms +   ao_scheme_frame_global   */  int -ao_lisp_os_save(void) +ao_scheme_os_save(void)  {  	int i; -	for (i = 0; i < AO_LISP_POOL_TOTAL; i += 256) { +	for (i = 0; i < AO_SCHEME_POOL_TOTAL; i += 256) {  		uint32_t	*dst = (uint32_t *) (void *) &__flash__[i]; -		uint32_t	*src = (uint32_t *) (void *) &ao_lisp_pool[i]; +		uint32_t	*src = (uint32_t *) (void *) &ao_scheme_pool[i];  		ao_flash_page(dst, src);  	} @@ -39,15 +39,15 @@ ao_lisp_os_save(void)  }  int -ao_lisp_os_restore_save(struct ao_lisp_os_save *save, int offset) +ao_scheme_os_restore_save(struct ao_scheme_os_save *save, int offset)  { -	memcpy(save, &__flash__[offset], sizeof (struct ao_lisp_os_save)); +	memcpy(save, &__flash__[offset], sizeof (struct ao_scheme_os_save));  	return 1;  }  int -ao_lisp_os_restore(void) +ao_scheme_os_restore(void)  { -	memcpy(ao_lisp_pool, __flash__, AO_LISP_POOL_TOTAL); +	memcpy(ao_scheme_pool, __flash__, AO_SCHEME_POOL_TOTAL);  	return 1;  }  | 
