From a2dff456f787a7fd49a44104a5edfe9644e15eca Mon Sep 17 00:00:00 2001
From: Oleg Hahm <oleg@hobbykeller.org>
Date: Mon, 29 Jul 2013 01:22:03 +0200
Subject: [PATCH] rebased from origin/master

---
 Makefile.include                             |  4 +++-
 cpu/Makefile                                 | 10 ++++++++--
 cpu/Makefile.include                         | 21 ++++++++++++++++++++
 cpu/arm_common/arm_cpu.c                     |  5 ++++-
 cpu/lpc_common/Makefile                      |  4 ++++
 cpu/{arm_common => lpc_common}/hwtimer_cpu.c |  0
 cpu/{arm_common => lpc_common}/iap.c         |  1 +
 7 files changed, 41 insertions(+), 4 deletions(-)
 create mode 100644 cpu/Makefile.include
 create mode 100644 cpu/lpc_common/Makefile
 rename cpu/{arm_common => lpc_common}/hwtimer_cpu.c (100%)
 rename cpu/{arm_common => lpc_common}/iap.c (99%)

diff --git a/Makefile.include b/Makefile.include
index e239c5cf1a..16d0697727 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -1,3 +1,4 @@
+# set undefined variables
 ifeq ($(strip $(RIOTCPU)),)
 	export RIOTCPU =$(RIOTBASE)/cpu
 endif
@@ -11,8 +12,9 @@ BB = $(shell echo $(BOARD)|tr 'a-z' 'A-Z')
 CFLAGS += -DBOARD=$(BB)
 export CFLAGS
 
-# mandatory include! 
+# mandatory includes!
 include $(RIOTBOARD)/$(BOARD)/Makefile.include
+include $(RIOTCPU)/Makefile.include
 include $(RIOTBASE)/Makefile.modules 
 
 # your binaries to link
diff --git a/cpu/Makefile b/cpu/Makefile
index b0f6e8f4df..19c8c89533 100644
--- a/cpu/Makefile
+++ b/cpu/Makefile
@@ -1,9 +1,13 @@
 ifeq ($(CPU),lpc2387)
- DIRS = arm_common lpc2387
+ DIRS = arm_common lpc_common lpc2387
 endif
 
 ifeq ($(CPU),lpc214x)
- DIRS = arm_common lpc214x
+ DIRS = arm_common lpc_common lpc214x
+endif
+
+ifeq ($(CPU),mc1322x)
+	DIRS = arm_common mc1322x
 endif
 
 ifeq ($(CPU),cc430)
@@ -28,6 +32,8 @@ $(DIRS):
 
 clean:
 	@$(MAKE) -C lpc2387 clean
+	@$(MAKE) -C mc1322x clean
+	@$(MAKE) -C lpc_common clean
 	@$(MAKE) -C arm_common clean
 	@$(MAKE) -C cc430 clean
 	@$(MAKE) -C msp430-common clean
diff --git a/cpu/Makefile.include b/cpu/Makefile.include
new file mode 100644
index 0000000000..968ca3812b
--- /dev/null
+++ b/cpu/Makefile.include
@@ -0,0 +1,21 @@
+### Minimal setup
+ifeq ($(CPU),lpc2387)
+  export USEMODULE += arm_common lpc_common
+  export UNDEF += $(BINDIR)syscalls.o
+  export INCLUDES += -I$(RIOTCPU)/arm_common/include
+  export INCLUDES += -I$(RIOTCPU)/lpc_common/include
+endif
+ifeq ($(CPU),lpc214x)
+  export USEMODULE += arm_common lpc_common
+  export UNDEF += $(BINDIR)syscalls.o
+  export INCLUDES += -I$(RIOTCPU)/arm_common/include
+  export INCLUDES += -I$(RIOTCPU)/lpc_common/include
+endif
+ifeq ($(CPU),mc1322x)
+  export USEMODULE += arm_common
+  export UNDEF += $(BINDIR)syscalls.o
+  export INCLUDES += -I$(RIOTBASE)/cpu/arm_common/include
+endif
+ifeq ($(CPU),native)
+  export INCLUDES += -I$(RIOTBASE)/cpu/native/include
+endif
diff --git a/cpu/arm_common/arm_cpu.c b/cpu/arm_common/arm_cpu.c
index f2177dc7c3..49ef69dbb8 100644
--- a/cpu/arm_common/arm_cpu.c
+++ b/cpu/arm_common/arm_cpu.c
@@ -89,7 +89,9 @@ void thread_print_stack(void)
     printf("STACK (%u)= %X \n", i, *s);
 }
 
-__attribute__((naked, noreturn)) void arm_reset(void)
+/* LPC specific */
+#ifdef WDTC
+__attribute__((naked,noreturn)) void arm_reset(void)
 {
     dINT();
     WDTC   = 0x00FFF;
@@ -99,3 +101,4 @@ __attribute__((naked, noreturn)) void arm_reset(void)
 
     while (1);
 }
+#endif
diff --git a/cpu/lpc_common/Makefile b/cpu/lpc_common/Makefile
new file mode 100644
index 0000000000..b8ccbfb0ef
--- /dev/null
+++ b/cpu/lpc_common/Makefile
@@ -0,0 +1,4 @@
+MODULE =lpc_common
+
+include $(RIOTBASE)/Makefile.base
+
diff --git a/cpu/arm_common/hwtimer_cpu.c b/cpu/lpc_common/hwtimer_cpu.c
similarity index 100%
rename from cpu/arm_common/hwtimer_cpu.c
rename to cpu/lpc_common/hwtimer_cpu.c
diff --git a/cpu/arm_common/iap.c b/cpu/lpc_common/iap.c
similarity index 99%
rename from cpu/arm_common/iap.c
rename to cpu/lpc_common/iap.c
index 9c261cf5fd..56dee0e693 100644
--- a/cpu/arm_common/iap.c
+++ b/cpu/lpc_common/iap.c
@@ -7,6 +7,7 @@
 #include <irq.h>
 #include <flashrom.h>
 #include <iap.h>
+/* TODO: replace by a lpc generic header */
 #include <lpc2387.h>
 
 #define ENABLE_DEBUG    (0)
-- 
GitLab