summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-09-01 21:02:16 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-09-01 21:02:16 +0200
commite98d39ba86142ba17b608ebf2f2880940f5621c2 (patch)
tree972e898e5c56516390bc504d0b2978880478e558 /firmware
parent4b4c5bb3fa573c3c2f34605bbbc0936925d4360d (diff)
Add I2S test program (dummy so far).
Diffstat (limited to 'firmware')
-rw-r--r--firmware/test/i2s/Makefile100
-rw-r--r--firmware/test/i2s/i2stest.c37
2 files changed, 137 insertions, 0 deletions
diff --git a/firmware/test/i2s/Makefile b/firmware/test/i2s/Makefile
new file mode 100644
index 0000000..c88f443
--- /dev/null
+++ b/firmware/test/i2s/Makefile
@@ -0,0 +1,100 @@
+#/* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+# * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+# * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+# * THE AUTHORS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+# * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. USE IT AT YOUR OWN RISK */
+
+ARCH = arm-none-eabi
+top_srcdir=${PWD}/../..
+LPC=${top_srcdir}/lpc17xx
+DRV=${top_srcdir}/drivers
+SRC=${top_srcdir}/src
+
+PROJ=i2stest
+EXECNAME=$(PROJ).elf
+
+# Tool definitions
+CC = $(ARCH)-gcc
+LD = $(ARCH)-ld
+AR = $(ARCH)-ar
+AS = $(ARCH)-as
+CP = $(ARCH)-objcopy
+OD = $(ARCH)-objdump
+SIZE = $(ARCH)-size
+RM = rm
+#Q = # @./quiet "$@"
+
+# Flags
+CFLAGS = -W -Wall -Werror -O0 --std=gnu99 -fgnu89-inline -mcpu=cortex-m3 -mthumb
+CFLAGS += -ffunction-sections -fdata-sections
+CFLAGS += -I${DRV}
+ASFLAGS =
+LDFLAGS = --gc-sections
+
+STDLIB_LDFLAGS =
+
+CPFLAGS =
+ODFLAGS = -x --syms
+PRFLAGS ?=
+
+# Source files
+LINKER_SCRIPT = ${LPC}/LPC17xx.ld
+CSRCS = \
+ ${LPC}/system_LPC17xx.c \
+ ${LPC}/startup_LPC17xx.c \
+ ${DRV}/i2s.c
+
+CSRCS += ${PROJ}.c
+ASRCS =
+
+
+OBJS = $(CSRCS:.c=.o) $(ASRCS:.s=.o)
+
+.PHONY: all size clean nuke
+
+all: ${PROJ}.bin ${PROJ}.hex
+
+size: ${PROJ}.elf
+ @$(SIZE) $<
+
+%.hex: %.elf
+ $Q $(CP) $(CPFLAGS) -O ihex $< $*.hex
+
+%.bin: %.elf
+ $Q $(CP) $(CPFLAGS) -O binary $< $*.bin
+
+${PROJ}.elf: $(LINKER_SCRIPT) $(OBJS)
+ $Q $(LD) -Map $(@:.elf=.map) $(LDFLAGS) -T $^ -o $@ $(STDLIB_LDFLAGS)
+ $Q $(OD) $(ODFLAGS) $@ > $(@:.elf=.dump)
+ @$(SIZE) $@
+
+%.o: %.c
+ @$(CC) -MM $< -MF $*.d -MP
+ $Q $(CC) -c $(CFLAGS) $< -o $@
+
+%.o: %.S
+ $Q $(AS) $(ASFLAGS) $< -o $@
+
+clean:
+ @-$(RM) -f *.elf
+ @-\
+for D in "." "**"; do \
+ $(RM) -f $$D/*.o $$D/*.d $$D/*.lst $$D/*.dump $$D/*.map; \
+done
+
+nuke: clean
+ -$(RM) -f *.hex *.bin
+
+.PHONY : flash
+#flash: $(EXECNAME)
+# $(CP) -O ihex $(EXECNAME) $(PROJ).hex
+# openocd -f openocd.cfg -c 'flash write_image erase $(PROJ).hex' -c 'verify_image $(PROJ).hex' -c 'reset run'
+flash: $(EXECNAME)
+ $(CP) -O binary $(EXECNAME) $(PROJ).bin
+ ./fix-lpcchecksum $(PROJ).bin
+ openocd -f openocd.cfg \
+ -c 'flash write_image erase $(PROJ).bin' \
+ -c 'verify_image $(PROJ).bin' \
+ -c 'reset run'
+
+-include $(CSRCS:.c=.d)
diff --git a/firmware/test/i2s/i2stest.c b/firmware/test/i2s/i2stest.c
new file mode 100644
index 0000000..16ea291
--- /dev/null
+++ b/firmware/test/i2s/i2stest.c
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/***************************************************************************
+ * i2stest.c
+ *
+ * Mon Sep 1 20:25:48 CEST 2014
+ * Copyright 2014 Bent Bisballe Nyeng
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of Pedal2Metal.
+ *
+ * Pedal2Metal 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Pedal2Metal 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 Pedal2Metal; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#include <i2s.h>
+
+int main (void)
+{
+ i2s_init();
+
+ i2s_tx_start();
+
+ while(1) {
+ }
+}