diff --git a/demos/ARM7-LPC214x-G++/Makefile b/demos/ARM7-LPC214x-G++/Makefile
index 8c20ec2b8..14cd28728 100644
--- a/demos/ARM7-LPC214x-G++/Makefile
+++ b/demos/ARM7-LPC214x-G++/Makefile
@@ -44,25 +44,26 @@ LDSCRIPT = ch.ld
# Imported source files
CHIBIOS = ../..
-include ${CHIBIOS}/os/hal/hal.mk
-include ${CHIBIOS}/os/hal/platforms/LPC214x/platform.mk
-include ${CHIBIOS}/os/ports/GCC/ARM7/port.mk
-include ${CHIBIOS}/os/kernel/kernel.mk
-include ${CHIBIOS}/test/test.mk
+include $(CHIBIOS)/boards/OLIMEX_LPC_P2148/board.mk
+include $(CHIBIOS)/os/hal/platforms/LPC214x/platform.mk
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS)/os/ports/GCC/ARM7/port.mk
+include $(CHIBIOS)/os/kernel/kernel.mk
+include $(CHIBIOS)/test/test.mk
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = ${PORTSRC} \
- ${KERNSRC} \
- ${TESTSRC} \
- ${HALSRC} \
- ${PLATFORMSRC} \
- ${CHIBIOS}/os/various/evtimer.c \
- board.c
+CSRC = $(PORTSRC) \
+ $(KERNSRC) \
+ $(TESTSRC) \
+ $(HALSRC) \
+ $(PLATFORMSRC) \
+ $(BOARDSRC) \
+ $(CHIBIOS)/os/various/evtimer.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CPPSRC = ${CHIBIOS}/os/various/ch.cpp main.cpp
+CPPSRC = $(CHIBIOS)/os/various/ch.cpp main.cpp
# C sources to be compiled in ARM mode regardless of the global setting.
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
@@ -86,11 +87,12 @@ TCPPSRC =
# List ASM source files here
ASMSRC = $(PORTASM) \
- ${CHIBIOS}/os/ports/GCC/ARM7/LPC214x/vectors.s
+ $(CHIBIOS)/os/ports/GCC/ARM7/LPC214x/vectors.s
-INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \
- ${CHIBIOS}/os/various \
- ${CHIBIOS}/os/ports/GCC/ARM7/LPC214x
+INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
+ $(HALINC) $(PLATFORMINC) $(BOARDINC) \
+ $(CHIBIOS)/os/various \
+ $(CHIBIOS)/os/ports/GCC/ARM7/LPC214x
#
# Project, sources and paths
@@ -178,4 +180,4 @@ ULIBS =
# End of user defines
##############################################################################
-include ${CHIBIOS}/os/ports/GCC/ARM/rules.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
diff --git a/demos/ARM7-LPC214x-G++/board.c b/demos/ARM7-LPC214x-G++/board.c
deleted file mode 100644
index 539adabee..000000000
--- a/demos/ARM7-LPC214x-G++/board.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see .
-*/
-
-#include "ch.h"
-#include "hal.h"
-
-//#include "lpc214x_ssp.h"
-//#include "mmcsd.h"
-//#include "buzzer.h"
-
-#define VAL_TC0_PRESCALER 0
-
-/*
- * Timer 0 IRQ handling here.
- */
-static CH_IRQ_HANDLER(T0IrqHandler) {
-
- CH_IRQ_PROLOGUE();
- T0IR = 1; /* Clear interrupt on match MR0. */
-
- chSysLockFromIsr();
- chSysTimerHandlerI();
- chSysUnlockFromIsr();
-
- VICVectAddr = 0;
- CH_IRQ_EPILOGUE();
-}
-
-/*
- * Early initialization code.
- * This initialization is performed just after reset before BSS and DATA
- * segments initialization.
- */
-void hwinit0(void) {
-
- lpc214x_clock_init();
-}
-
-/*
- * Late initialization code.
- * This initialization is performed after BSS and DATA segments initialization
- * and before invoking the main() function.
- */
-void hwinit1(void) {
-
- /*
- * HAL initialization.
- */
- halInit();
-
- /*
- * System Timer initialization, 1ms intervals.
- */
- SetVICVector(T0IrqHandler, 0, SOURCE_Timer0);
- VICIntEnable = INTMASK(SOURCE_Timer0);
- TC *timer = T0Base;
- timer->TC_PR = VAL_TC0_PRESCALER;
- timer->TC_MR0 = (PCLK / CH_FREQUENCY) / (VAL_TC0_PRESCALER + 1);
- timer->TC_MCR = 3; /* Interrupt and clear TC on match MR0. */
- timer->TC_TCR = 2; /* Reset counter and prescaler. */
- timer->TC_TCR = 1; /* Timer enabled. */
-
- /*
- * Other subsystems.
- */
-// ssp_init();
-// InitMMC();
-// InitBuzzer();
-
- /*
- * ChibiOS/RT initialization.
- */
- chSysInit();
-}
diff --git a/demos/ARM7-LPC214x-G++/board.h b/demos/ARM7-LPC214x-G++/board.h
deleted file mode 100644
index b66ce235d..000000000
--- a/demos/ARM7-LPC214x-G++/board.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see .
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-#define BOARD_OLIMEX_LCP_P2148
-
-/*
- * The following values are implementation dependent. You may change them in
- * order to match your HW.
- */
-#define FOSC 12000000
-#define CCLK 48000000
-#define PCLK 12000000
-
-/*
- * Pins configuration for Olimex LPC-P2148.
- *
- * PINSEL0
- * P0 P0 P0 P0 P0 P0 RXD TXD SSE MOS MIS SCK SDA SCL RXD TXD
- * 15 14 13 12 11 10 1 1 L0 I0 O0 0 0 0 0 0
- * 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
- * IN IN OUT OUT OUT OUT -- -- -- -- -- -- -- -- -- --
- * 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0
- *
- * PINSEL1
- * P0 AD P0 P0 -- -- AO -- VB P0 P0 P0 MOS MIS SCK P0
- * 31 03 29 28 -- -- UT -- US 22 21 20 I1 O1 1 16
- * 00 01 00 00 00 00 10 00 01 00 00 00 10 10 10 00
- * OUT -- OUT OUT -- -- -- -- -- OUT OUT OUT -- -- -- IN
- * 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0
- *
- * PINSEL2
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- GP DBG --
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- IO --
- * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 1 00
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- IN -- --
- */
-#define VAL_PINSEL0 0x00055555
-#define VAL_PINSEL1 0x100840A8
-#define VAL_PINSEL2 0x00000004
-#define VAL_FIO0DIR 0xB0703C00
-#define VAL_FIO1DIR 0x00000000
-#define VAL_FIO0PIN 0xFFFFFFFF
-#define VAL_FIO1PIN 0xFFFFFFFF
-
-#define PA_LED1 10
-#define PA_LED2 11
-#define PA_BUZZ1 12
-#define PA_BUZZ2 13
-#define PA_BSL 14
-#define PA_BUTTON1 15
-#define PA_BUTTON2 16
-#define PA_SSEL1 20
-#define PA_LEDUSB 31
-
-#define PB_WP1 24
-#define PB_CP1 25
-
-#endif /* _BOARD_H_ */
diff --git a/demos/ARM7-LPC214x-GCC-minimal/Makefile b/demos/ARM7-LPC214x-GCC-minimal/Makefile
index 8801183e4..4fe00385d 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/Makefile
+++ b/demos/ARM7-LPC214x-GCC-minimal/Makefile
@@ -44,20 +44,22 @@ LDSCRIPT = ch.ld
# Imported source files
CHIBIOS = ../..
-include ${CHIBIOS}/os/hal/hal.mk
-include ${CHIBIOS}/os/hal/platforms/LPC214x/platform.mk
-include ${CHIBIOS}/os/ports/GCC/ARM7/port.mk
-include ${CHIBIOS}/os/kernel/kernel.mk
-#include ${CHIBIOS}/test/test.mk
+include $(CHIBIOS)/boards/OLIMEX_LPC_P2148/board.mk
+include $(CHIBIOS)/os/hal/platforms/LPC214x/platform.mk
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS)/os/ports/GCC/ARM7/port.mk
+include $(CHIBIOS)/os/kernel/kernel.mk
+#include $(CHIBIOS)/test/test.mk
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = ${PORTSRC} \
- ${KERNSRC} \
- ${TESTSRC} \
- ${HALSRC} \
- ${PLATFORMSRC} \
- board.c main.c
+CSRC = $(PORTSRC) \
+ $(KERNSRC) \
+ $(TESTSRC) \
+ $(HALSRC) \
+ $(PLATFORMSRC) \
+ $(BOARDSRC) \
+ main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
@@ -85,11 +87,12 @@ TCPPSRC =
# List ASM source files here
ASMSRC = $(PORTASM) \
- ${CHIBIOS}/os/ports/GCC/ARM7/LPC214x/vectors.s
+ $(CHIBIOS)/os/ports/GCC/ARM7/LPC214x/vectors.s
-INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \
- ${CHIBIOS}/os/various \
- ${CHIBIOS}/os/ports/GCC/ARM7/LPC214x
+INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
+ $(HALINC) $(PLATFORMINC) $(BOARDINC) \
+ $(CHIBIOS)/os/various \
+ $(CHIBIOS)/os/ports/GCC/ARM7/LPC214x
#
# Project, sources and paths
@@ -177,4 +180,4 @@ ULIBS =
# End of user defines
##############################################################################
-include ${CHIBIOS}/os/ports/GCC/ARM/rules.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
diff --git a/demos/ARM7-LPC214x-GCC-minimal/board.c b/demos/ARM7-LPC214x-GCC-minimal/board.c
deleted file mode 100644
index 539adabee..000000000
--- a/demos/ARM7-LPC214x-GCC-minimal/board.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see .
-*/
-
-#include "ch.h"
-#include "hal.h"
-
-//#include "lpc214x_ssp.h"
-//#include "mmcsd.h"
-//#include "buzzer.h"
-
-#define VAL_TC0_PRESCALER 0
-
-/*
- * Timer 0 IRQ handling here.
- */
-static CH_IRQ_HANDLER(T0IrqHandler) {
-
- CH_IRQ_PROLOGUE();
- T0IR = 1; /* Clear interrupt on match MR0. */
-
- chSysLockFromIsr();
- chSysTimerHandlerI();
- chSysUnlockFromIsr();
-
- VICVectAddr = 0;
- CH_IRQ_EPILOGUE();
-}
-
-/*
- * Early initialization code.
- * This initialization is performed just after reset before BSS and DATA
- * segments initialization.
- */
-void hwinit0(void) {
-
- lpc214x_clock_init();
-}
-
-/*
- * Late initialization code.
- * This initialization is performed after BSS and DATA segments initialization
- * and before invoking the main() function.
- */
-void hwinit1(void) {
-
- /*
- * HAL initialization.
- */
- halInit();
-
- /*
- * System Timer initialization, 1ms intervals.
- */
- SetVICVector(T0IrqHandler, 0, SOURCE_Timer0);
- VICIntEnable = INTMASK(SOURCE_Timer0);
- TC *timer = T0Base;
- timer->TC_PR = VAL_TC0_PRESCALER;
- timer->TC_MR0 = (PCLK / CH_FREQUENCY) / (VAL_TC0_PRESCALER + 1);
- timer->TC_MCR = 3; /* Interrupt and clear TC on match MR0. */
- timer->TC_TCR = 2; /* Reset counter and prescaler. */
- timer->TC_TCR = 1; /* Timer enabled. */
-
- /*
- * Other subsystems.
- */
-// ssp_init();
-// InitMMC();
-// InitBuzzer();
-
- /*
- * ChibiOS/RT initialization.
- */
- chSysInit();
-}
diff --git a/demos/ARM7-LPC214x-GCC-minimal/board.h b/demos/ARM7-LPC214x-GCC-minimal/board.h
deleted file mode 100644
index b66ce235d..000000000
--- a/demos/ARM7-LPC214x-GCC-minimal/board.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see .
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-#define BOARD_OLIMEX_LCP_P2148
-
-/*
- * The following values are implementation dependent. You may change them in
- * order to match your HW.
- */
-#define FOSC 12000000
-#define CCLK 48000000
-#define PCLK 12000000
-
-/*
- * Pins configuration for Olimex LPC-P2148.
- *
- * PINSEL0
- * P0 P0 P0 P0 P0 P0 RXD TXD SSE MOS MIS SCK SDA SCL RXD TXD
- * 15 14 13 12 11 10 1 1 L0 I0 O0 0 0 0 0 0
- * 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
- * IN IN OUT OUT OUT OUT -- -- -- -- -- -- -- -- -- --
- * 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0
- *
- * PINSEL1
- * P0 AD P0 P0 -- -- AO -- VB P0 P0 P0 MOS MIS SCK P0
- * 31 03 29 28 -- -- UT -- US 22 21 20 I1 O1 1 16
- * 00 01 00 00 00 00 10 00 01 00 00 00 10 10 10 00
- * OUT -- OUT OUT -- -- -- -- -- OUT OUT OUT -- -- -- IN
- * 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0
- *
- * PINSEL2
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- GP DBG --
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- IO --
- * 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 1 00
- * -- -- -- -- -- -- -- -- -- -- -- -- -- -- IN -- --
- */
-#define VAL_PINSEL0 0x00055555
-#define VAL_PINSEL1 0x100840A8
-#define VAL_PINSEL2 0x00000004
-#define VAL_FIO0DIR 0xB0703C00
-#define VAL_FIO1DIR 0x00000000
-#define VAL_FIO0PIN 0xFFFFFFFF
-#define VAL_FIO1PIN 0xFFFFFFFF
-
-#define PA_LED1 10
-#define PA_LED2 11
-#define PA_BUZZ1 12
-#define PA_BUZZ2 13
-#define PA_BSL 14
-#define PA_BUTTON1 15
-#define PA_BUTTON2 16
-#define PA_SSEL1 20
-#define PA_LEDUSB 31
-
-#define PB_WP1 24
-#define PB_CP1 25
-
-#endif /* _BOARD_H_ */