aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/Makefile42
-rw-r--r--example/blink.c27
-rw-r--r--example/blink.ld57
-rw-r--r--lib/Makefile3
4 files changed, 128 insertions, 1 deletions
diff --git a/example/Makefile b/example/Makefile
new file mode 100644
index 0000000..b6f4f9a
--- /dev/null
+++ b/example/Makefile
@@ -0,0 +1,42 @@
+##
+## This file is part of the libopenstm32 project.
+##
+## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
+##
+## 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; either version 2 of the License, or
+## (at your option) any later version.
+##
+## 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+##
+
+BINARY = blink
+
+# PREFIX ?= arm-none-eabi
+PREFIX ?= arm-elf
+CC = $(PREFIX)-gcc
+LD = $(PREFIX)-ld
+CFLAGS = -Os -g -Wall -Wextra -I../include -fno-common \
+ -mcpu=cortex-m3 -mthumb
+LDFLAGS = -L../lib -T$(BINARY).ld -nostartfiles
+OBJS = $(BINARY).o
+
+all: $(BINARY)
+
+$(BINARY): $(OBJS) $(BINARY).ld
+ $(LD) $(LDFLAGS) -o $(BINARY) $(OBJS) -lopenstm32
+
+$(BINARY).o: $(BINARY).c
+ $(CC) $(CFLAGS) -c $(BINARY).c
+
+clean:
+ rm -f *.o $(BINARY)
+
diff --git a/example/blink.c b/example/blink.c
new file mode 100644
index 0000000..aa68322
--- /dev/null
+++ b/example/blink.c
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the libopenstm32 project.
+ *
+ * Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <libopenstm32.h>
+
+int main(void)
+{
+ /* TODO */
+ return 0;
+}
diff --git a/example/blink.ld b/example/blink.ld
new file mode 100644
index 0000000..c57079c
--- /dev/null
+++ b/example/blink.ld
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the libopenstm32 project.
+ *
+ * Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* Linker script for Olimex STM32-H103 (STM32F103RBT6, 128K flash, 20K RAM). */
+
+/* Define memory regions. */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00000000, LENGTH = 128K
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
+}
+
+/* Define sections. */
+SECTIONS
+{
+ . = ORIGIN(rom);
+
+ .text : {
+ *(.text) /* Program code */
+ *(.rodata) /* Read-only data */
+ } >rom
+
+ . = ORIGIN(ram);
+
+ .data : {
+ *(.data) /* Read-write initialized data */
+ } >ram AT >rom
+
+ .bss : {
+ *(.bss) /* Read-write zero initialized data */
+ } >ram AT >rom
+
+ /* Discard useless sections. */
+ /DISCARD/ : {
+ *(.comment)
+ *(.comment.*)
+ *(.note)
+ *(.note.*)
+ }
+}
diff --git a/lib/Makefile b/lib/Makefile
index fb0440e..8a56abf 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -18,6 +18,8 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
+LIBNAME = libopenstm32
+
# PREFIX ?= arm-none-eabi
PREFIX ?= arm-elf
CC = $(PREFIX)-gcc
@@ -25,7 +27,6 @@ AR = $(PREFIX)-ar
CFLAGS = -Os -g -Wall -Wextra -I../include -fno-common \
-mcpu=cortex-m3 -mthumb
ARFLAGS = rcsv
-LIBNAME = libopenstm32
OBJS = gpio.o
all: $(LIBNAME).a