[Sysless] [PATCH] Added board support for NXP mbed board (www.mbed.org)

Jiri Kubias jiri.kubias at gmail.com
Wed Jul 21 10:43:36 CEST 2010


* added board dir:  board/arm/lpc17cmsis-mbed/
* added simple app  (app/arm/mbed_blink) for blinking one diode on mbed board
---
 app/arm/mbed_blink/Makefile                   |   14 +++++++
 app/arm/mbed_blink/Makefile.omk               |   19 ++++++++++
 app/arm/mbed_blink/main.c                     |   31 +++++++++++++++++
 board/arm/lpc17cmsis-mbed/Makefile            |   14 +++++++
 board/arm/lpc17cmsis-mbed/Makefile.omk        |    6 +++
 board/arm/lpc17cmsis-mbed/board.ld            |    1 +
 board/arm/lpc17cmsis-mbed/config.lpc17xx-mbed |   46 +++++++++++++++++++++++++
 board/arm/lpc17cmsis-mbed/system_def.h        |    1 +
 8 files changed, 132 insertions(+), 0 deletions(-)
 create mode 100644 app/arm/mbed_blink/Makefile
 create mode 100644 app/arm/mbed_blink/Makefile.omk
 create mode 100644 app/arm/mbed_blink/main.c
 create mode 100644 board/arm/lpc17cmsis-mbed/Makefile
 create mode 100644 board/arm/lpc17cmsis-mbed/Makefile.omk
 create mode 100644 board/arm/lpc17cmsis-mbed/board.ld
 create mode 100644 board/arm/lpc17cmsis-mbed/config.lpc17xx-mbed
 create mode 100644 board/arm/lpc17cmsis-mbed/system_def.h

diff --git a/app/arm/mbed_blink/Makefile b/app/arm/mbed_blink/Makefile
new file mode 100644
index 0000000..76b56fd
--- /dev/null
+++ b/app/arm/mbed_blink/Makefile
@@ -0,0 +1,14 @@
+# Generic directory or leaf node makefile for OCERA make framework
+
+ifndef MAKERULES_DIR
+MAKERULES_DIR := $(shell ( old_pwd="" ;  while [ ! -e Makefile.rules ] ; do if [ "$$old_pwd" = `pwd`  ] ; then exit 1 ; else old_pwd=`pwd` ; cd -L .. 2>/dev/null ; fi ; done ; pwd ) )
+endif
+
+ifeq ($(MAKERULES_DIR),)
+all : default
+.DEFAULT::
+	@echo -e "\nThe Makefile.rules has not been found in this or parent directory\n"
+else
+include $(MAKERULES_DIR)/Makefile.rules
+endif
+
diff --git a/app/arm/mbed_blink/Makefile.omk b/app/arm/mbed_blink/Makefile.omk
new file mode 100644
index 0000000..bfd461b
--- /dev/null
+++ b/app/arm/mbed_blink/Makefile.omk
@@ -0,0 +1,19 @@
+# -*- makefile -*-
+MY_BOARD = lpc17cmsis-mbed
+ifeq ($(BOARD), $(MY_BOARD))
+
+
+# eb_blink je nazev programu, pod timto navzem bude systemem prekladan
+bin_PROGRAMS = mbed_blink
+
+
+# za nazev_programu_SOURCES se davaji vsechny C zdrojaky, ktere se budou kompilovat
+mbed_blink_SOURCES =  main.c
+
+
+
+else
+ifeq ($(RELATIVE_DIR),$(INVOCATION_DIR))
+$(error Not my board - $(MY_BOARD). Not going to compile!)
+endif
+endif
diff --git a/app/arm/mbed_blink/main.c b/app/arm/mbed_blink/main.c
new file mode 100644
index 0000000..7a9278d
--- /dev/null
+++ b/app/arm/mbed_blink/main.c
@@ -0,0 +1,31 @@
+#include <LPC17xx.h>
+
+#define LED1 (1<<18)
+#define LED2 (1<<20)
+#define LED3 (1<<21)
+#define LED4 (1<<23)
+
+
+void delay(void)
+{
+  volatile unsigned int i = 50000;
+  while(--i);
+}
+
+int main(void)
+{
+  
+  
+  LPC_PINCON->PINSEL3 &= ~(3 << 4);
+  LPC_GPIO1->FIODIR |=LED1;
+
+
+while(1)
+    {
+	delay();
+	LPC_GPIO1->FIOSET = (1<<18);
+	delay();
+	LPC_GPIO1->FIOCLR = (1<<18);
+    };
+
+}
\ No newline at end of file
diff --git a/board/arm/lpc17cmsis-mbed/Makefile b/board/arm/lpc17cmsis-mbed/Makefile
new file mode 100644
index 0000000..76b56fd
--- /dev/null
+++ b/board/arm/lpc17cmsis-mbed/Makefile
@@ -0,0 +1,14 @@
+# Generic directory or leaf node makefile for OCERA make framework
+
+ifndef MAKERULES_DIR
+MAKERULES_DIR := $(shell ( old_pwd="" ;  while [ ! -e Makefile.rules ] ; do if [ "$$old_pwd" = `pwd`  ] ; then exit 1 ; else old_pwd=`pwd` ; cd -L .. 2>/dev/null ; fi ; done ; pwd ) )
+endif
+
+ifeq ($(MAKERULES_DIR),)
+all : default
+.DEFAULT::
+	@echo -e "\nThe Makefile.rules has not been found in this or parent directory\n"
+else
+include $(MAKERULES_DIR)/Makefile.rules
+endif
+
diff --git a/board/arm/lpc17cmsis-mbed/Makefile.omk b/board/arm/lpc17cmsis-mbed/Makefile.omk
new file mode 100644
index 0000000..99dc2a5
--- /dev/null
+++ b/board/arm/lpc17cmsis-mbed/Makefile.omk
@@ -0,0 +1,6 @@
+# -*- makefile -*-
+
+SUBDIRS = 
+
+lib_LDSCRIPTS = board.ld
+include_HEADERS = system_def.h
diff --git a/board/arm/lpc17cmsis-mbed/board.ld b/board/arm/lpc17cmsis-mbed/board.ld
new file mode 100644
index 0000000..20ce73e
--- /dev/null
+++ b/board/arm/lpc17cmsis-mbed/board.ld
@@ -0,0 +1 @@
+/* Board specific objects linked with applications */
diff --git a/board/arm/lpc17cmsis-mbed/config.lpc17xx-mbed b/board/arm/lpc17cmsis-mbed/config.lpc17xx-mbed
new file mode 100644
index 0000000..b0e0d72
--- /dev/null
+++ b/board/arm/lpc17cmsis-mbed/config.lpc17xx-mbed
@@ -0,0 +1,46 @@
+# -*- makefile -*-
+
+ARCH=arm
+MACH=lpc17cmsis
+BOARD=lpc17cmsis-mbed
+
+CROSS_COMPILE = arm-elf-
+TARGET_ARCH = -mthumb -mcpu=cortex-m3
+
+# set ARCH_... & MACH_... C defines
+CFLAGS += -DARCH_$(shell echo $(ARCH) | tr a-z A-Z)
+CFLAGS += -DMACH_$(shell echo $(MACH) | tr a-z A-Z)
+CFLAGS += -D__BIT_TYPES_DEFINED__
+
+# Set default C flags. If theese are set elsewhere (e.g. on a command
+# line), these default flags are not used.
+DEBUG ?= -g
+OPTIMIZE ?= -O2
+
+
+# loading function is not done yet
+
+#LPCISP=~/projects/cf/lpc21isp_v179/lpc21isp
+#TOLPC13XX=../../../arch/arm/mach-lpc13xx/tools/tolpc/tolpc -m ../../../arch/arm/mach-lpc13xx/tools/tolpc/lpc13xx.so
+#LPC_BAUD = 115200
+#LPC_TTY = /dev/ttyUSB0
+#CPU_SYS_KHZ = 12000
+
+#TOLPC = $(TOLPC13XX) --baud $(LPC_BAUD) --sdev $(LPC_TTY) -q $(CPU_SYS_KHZ) -L -f
+#LOAD_CMD-ram = $(TOLPC) 
+#LOAD_CMD-flash = load() { $(TOLPC) -bin $$1 $(LPC_TTY) $(LPC_BAUD) $(CPU_SYS_KHZ); }; load
+
+# This selects linker script
+LD_SCRIPT=lpc1768
+DEFAULT_LD_SCRIPT_VARIANT=flash
+
+OUTPUT_FORMATS = bin
+
+###
+#CONFIG_USB_BASE=y
+#CONFIG_USB_MORE=y
+CONFIG_USB_PDIUSB=n
+#CONFIG_USB_LPCUSB=y
+CONFIG_CMDPROC_TEST=n
+
+LN_HEADERS=y
diff --git a/board/arm/lpc17cmsis-mbed/system_def.h b/board/arm/lpc17cmsis-mbed/system_def.h
new file mode 100644
index 0000000..9022aab
--- /dev/null
+++ b/board/arm/lpc17cmsis-mbed/system_def.h
@@ -0,0 +1 @@
+/* rien de rien */
-- 
1.7.1




More information about the Sysless mailing list