From 60788fd9d2bfc8741190cb11c96251fb2f056ea0 Mon Sep 17 00:00:00 2001 From: Taylor Vesely Date: Wed, 21 Mar 2012 15:51:26 -0600 Subject: [PATCH] Started porting to LPC17xx. Created file stubs and started conversion. --- examples/lpc17xx/Makefile.include | 0 .../blueboard-lpc1768-h.ld | 31 +++++++++ .../blueboard-lpc1768-h/miniblink/Makefile | 0 .../blueboard-lpc1768-h/miniblink/README | 9 +++ .../blueboard-lpc1768-h/miniblink/miniblink.c | 0 include/libopencm3/lpc17xx/gpio.h | 0 include/libopencm3/lpc17xx/memorymap.h | 68 +++++++++++++++++++ lib/lpc17xx/Makefile | 0 lib/lpc17xx/gpio.c | 0 lib/lpc17xx/libopencm3_lpc17xx.ld | 0 10 files changed, 108 insertions(+) create mode 100644 examples/lpc17xx/Makefile.include create mode 100644 examples/lpc17xx/blueboard-lpc1768-h/blueboard-lpc1768-h.ld create mode 100644 examples/lpc17xx/blueboard-lpc1768-h/miniblink/Makefile create mode 100644 examples/lpc17xx/blueboard-lpc1768-h/miniblink/README create mode 100644 examples/lpc17xx/blueboard-lpc1768-h/miniblink/miniblink.c create mode 100644 include/libopencm3/lpc17xx/gpio.h create mode 100644 include/libopencm3/lpc17xx/memorymap.h create mode 100644 lib/lpc17xx/Makefile create mode 100644 lib/lpc17xx/gpio.c create mode 100644 lib/lpc17xx/libopencm3_lpc17xx.ld diff --git a/examples/lpc17xx/Makefile.include b/examples/lpc17xx/Makefile.include new file mode 100644 index 00000000..e69de29b diff --git a/examples/lpc17xx/blueboard-lpc1768-h/blueboard-lpc1768-h.ld b/examples/lpc17xx/blueboard-lpc1768-h/blueboard-lpc1768-h.ld new file mode 100644 index 00000000..b8cff56b --- /dev/null +++ b/examples/lpc17xx/blueboard-lpc1768-h/blueboard-lpc1768-h.ld @@ -0,0 +1,31 @@ + +/* + * This file is part of the libopencm3 project. + * + * Copyright (C) 2010 Uwe Hermann + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + */ + +/* Linker script for Blueboard-LPC1768-H (LPC1768, 512K flash, 32K SRAM). */ + +/* Define memory regions. */ +MEMORY +{ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 512K + ram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K +} + +/* Include the common ld script. */ +INCLUDE libopencm3_lpc17xx.ld diff --git a/examples/lpc17xx/blueboard-lpc1768-h/miniblink/Makefile b/examples/lpc17xx/blueboard-lpc1768-h/miniblink/Makefile new file mode 100644 index 00000000..e69de29b diff --git a/examples/lpc17xx/blueboard-lpc1768-h/miniblink/README b/examples/lpc17xx/blueboard-lpc1768-h/miniblink/README new file mode 100644 index 00000000..7354adf5 --- /dev/null +++ b/examples/lpc17xx/blueboard-lpc1768-h/miniblink/README @@ -0,0 +1,9 @@ +------------------------------------------------------------------------------ +README +------------------------------------------------------------------------------ + +This is the smallest-possible example program using libopencm3. + +It's intended for the NXP LPC1768-based NGX Blueboard-LPC1768-H eval board (see +http://shop.ngxtechnologies.com/product_info.php?cPath=21&products_id=65). It should blink +a LED on the board. diff --git a/examples/lpc17xx/blueboard-lpc1768-h/miniblink/miniblink.c b/examples/lpc17xx/blueboard-lpc1768-h/miniblink/miniblink.c new file mode 100644 index 00000000..e69de29b diff --git a/include/libopencm3/lpc17xx/gpio.h b/include/libopencm3/lpc17xx/gpio.h new file mode 100644 index 00000000..e69de29b diff --git a/include/libopencm3/lpc17xx/memorymap.h b/include/libopencm3/lpc17xx/memorymap.h new file mode 100644 index 00000000..879a97d3 --- /dev/null +++ b/include/libopencm3/lpc17xx/memorymap.h @@ -0,0 +1,68 @@ +/* + * This file is part of the libopencm3 project. + * + * Copyright (C) 2010 Uwe Hermann + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + */ + +#ifndef LPC17XX_MEMORYMAP_H +#define LPC17XX_MEMORYMAP_H + +#include + +/* --- LPC17XX specific peripheral definitions ----------------------------- */ + +/* Memory map for all busses */ +#define PERIPH_BASE_APB 0x40000000 +#define PERIPH_BASE_AHB 0x20000000 + +/* Register boundary addresses */ + +/* APB */ +#define WDT_BASE (PERIPH_BASE_APB + 0x00000) +#define TIMER0_BASE (PERIPH_BASE_APB + 0x04000) +#define TIMER1_BASE (PERIPH_BASE_APB + 0x08000) +#define TIMER0_16BIT_BASE (PERIPH_BASE_APB + 0x0c000) +#define TIMER1_16BIT_BASE (PERIPH_BASE_APB + 0x10000) +#define TIMER0_32BIT_BASE (PERIPH_BASE_APB + 0x14000) +#define TIMER1_32BIT_BASE (PERIPH_BASE_APB + 0x18000) +#define ADC_BASE (PERIPH_BASE_APB + 0x1c000) +#define USB_BASE (PERIPH_BASE_APB + 0x20000) + +#define I2C_BASE (PERIPH_BASE_APB + 0x00000) +#define WDT_BASE (PERIPH_BASE_APB + 0x04000) +#define UART_BASE (PERIPH_BASE_APB + 0x08000) +#define TIMER0_16BIT_BASE (PERIPH_BASE_APB + 0x0c000) +#define TIMER1_16BIT_BASE (PERIPH_BASE_APB + 0x10000) +#define TIMER0_32BIT_BASE (PERIPH_BASE_APB + 0x14000) +#define TIMER1_32BIT_BASE (PERIPH_BASE_APB + 0x18000) +#define ADC_BASE (PERIPH_BASE_APB + 0x1c000) +#define USB_BASE (PERIPH_BASE_APB + 0x20000) +/* PERIPH_BASE_APB + 0x28000 (0x4002 8000 - 0x4003 7FFF): Reserved */ +#define PMU_BASE (PERIPH_BASE_APB + 0x38000) +#define FLASH_BASE (PERIPH_BASE_APB + 0x3c000) +#define SSP_BASE (PERIPH_BASE_APB + 0x40000) +#define IOCONFIG_BASE (PERIPH_BASE_APB + 0x44000) +#define SYSCTRL_BASE (PERIPH_BASE_APB + 0x48000) +/* PERIPH_BASE_APB + 0x4c000 (0x4004 c000 - 0x4007 FFFF): Reserved */ + +/* AHB */ +#define GPIO_PIO0_BASE (PERIPH_BASE_AHB + 0x00000) +#define GPIO_PIO1_BASE (PERIPH_BASE_AHB + 0x10000) +#define GPIO_PIO2_BASE (PERIPH_BASE_AHB + 0x20000) +#define GPIO_PIO3_BASE (PERIPH_BASE_AHB + 0x30000) +/* PERIPH_BASE_AHB + 0x40000 (0x5004 0000 - 0x501F FFFF): Reserved */ + +#endif diff --git a/lib/lpc17xx/Makefile b/lib/lpc17xx/Makefile new file mode 100644 index 00000000..e69de29b diff --git a/lib/lpc17xx/gpio.c b/lib/lpc17xx/gpio.c new file mode 100644 index 00000000..e69de29b diff --git a/lib/lpc17xx/libopencm3_lpc17xx.ld b/lib/lpc17xx/libopencm3_lpc17xx.ld new file mode 100644 index 00000000..e69de29b