From 8e5acecc6e170760d0edf95edb8f413385b2bf62 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Thu, 30 Dec 2010 02:57:44 +0100 Subject: More path and name changes. --- Makefile | 10 +- examples/lpc13xx/Makefile | 38 +++++++ examples/lpc13xx/Makefile.include | 118 +++++++++++++++++++++ examples/lpc13xx/lpc-p1343/Makefile | 38 +++++++ examples/lpc13xx/lpc-p1343/miniblink/Makefile | 2 +- examples/lpc13xx/lpc-p1343/miniblink/miniblink.ld | 6 +- examples/stm32/lisa-m/usb_dfu/usbdfu.ld | 2 +- examples/stm32/lisa-m/usb_hid/usbhid.ld | 2 +- examples/stm32/mb525/fancyblink/fancyblink.ld | 2 +- examples/stm32/mb525/pwmleds/pwmleds.ld | 2 +- examples/stm32/obldc/can/can.ld | 2 +- examples/stm32/obldc/led/led.ld | 2 +- examples/stm32/obldc/systick/systick.ld | 2 +- examples/stm32/obldc/usart/usart.ld | 2 +- examples/stm32/obldc/usart_irq/usart_irq.ld | 2 +- examples/stm32/other/adc_temperature_sensor/adc.ld | 2 +- examples/stm32/other/dma_mem2mem/dma.ld | 2 +- examples/stm32/other/dogm128/main.ld | 2 +- .../other/i2c_stts75_sensor/i2c_stts75_sensor.ld | 2 +- examples/stm32/other/rtc/rtc.ld | 2 +- examples/stm32/other/systick/systick.ld | 2 +- examples/stm32/other/timer_interrupt/timer.ld | 2 +- examples/stm32/other/usb_cdcacm/cdcacm.ld | 2 +- examples/stm32/other/usb_dfu/usbdfu.ld | 2 +- examples/stm32/other/usb_hid/usbhid.ld | 2 +- examples/stm32/stm32-h103/fancyblink/fancyblink.ld | 2 +- examples/stm32/stm32-h103/miniblink/miniblink.ld | 2 +- examples/stm32/stm32-h103/spi/spi.ld | 2 +- examples/stm32/stm32-h103/usart/usart.ld | 2 +- examples/stm32/stm32-h103/usb_cdcacm/cdcacm.ld | 2 +- examples/stm32/stm32-h103/usb_dfu/usbdfu.ld | 2 +- examples/stm32/stm32-h103/usb_hid/usbhid.ld | 2 +- examples/stm32/stm32-h103/usb_iap/usbiap.ld | 2 +- lib/lpc13xx/Makefile | 56 ++++++++++ lib/lpc13xx/gpio.c | 25 +++++ lib/lpc13xx/lpc13xx.ld | 63 +++++++++++ lib/stm32/Makefile | 4 +- 37 files changed, 378 insertions(+), 36 deletions(-) create mode 100644 examples/lpc13xx/Makefile create mode 100644 examples/lpc13xx/Makefile.include create mode 100644 examples/lpc13xx/lpc-p1343/Makefile create mode 100644 lib/lpc13xx/Makefile create mode 100644 lib/lpc13xx/gpio.c create mode 100644 lib/lpc13xx/lpc13xx.ld diff --git a/Makefile b/Makefile index 1103d37..f909705 100644 --- a/Makefile +++ b/Makefile @@ -36,12 +36,16 @@ all: build build: lib examples lib: - @printf " BUILD lib\n" + @printf " BUILD lib/stm32\n" $(Q)$(MAKE) -C lib/stm32 all + @printf " BUILD lib/lpc13xx\n" + $(Q)$(MAKE) -C lib/lpc13xx all examples: lib - @printf " BUILD examples\n" + @printf " BUILD examples/stm32\n" $(Q)$(MAKE) -C examples/stm32 all + @printf " BUILD examples/lpc13xx\n" + $(Q)$(MAKE) -C examples/lpc13xx all install: build @printf " INSTALL headers\n" @@ -59,6 +63,8 @@ install: build clean: $(Q)$(MAKE) -C examples/stm32 clean $(Q)$(MAKE) -C lib/stm32 clean + $(Q)$(MAKE) -C examples/lpc13xx clean + $(Q)$(MAKE) -C lib/lpc13xx clean .PHONY: build lib examples install clean diff --git a/examples/lpc13xx/Makefile b/examples/lpc13xx/Makefile new file mode 100644 index 0000000..0e9bdad --- /dev/null +++ b/examples/lpc13xx/Makefile @@ -0,0 +1,38 @@ +## +## This file is part of the libopenstm32 project. +## +## Copyright (C) 2010 Piotr Esden-Tempski +## +## 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 3 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, see . +## + +# Be silent per default, but 'make V=1' will show all compiler calls. +ifneq ($(V),1) +Q := @ +# Do not print "Entering directory ...". +MAKEFLAGS += --no-print-directory +endif + +all: lpc-p1343 + +lpc-p1343: + @printf " BUILD examples/lpc13xx/lpc-p1343\n" + $(Q)$(MAKE) -C lpc-p1343 + +clean: + @printf " CLEAN examples/lpc13xx/lpc-p1343\n" + $(Q)$(MAKE) -C lpc-p1343 clean + +.PHONY: lpc-p1343 clean + diff --git a/examples/lpc13xx/Makefile.include b/examples/lpc13xx/Makefile.include new file mode 100644 index 0000000..63a2633 --- /dev/null +++ b/examples/lpc13xx/Makefile.include @@ -0,0 +1,118 @@ +## This file is part of the libopenstm32 project. +## +## Copyright (C) 2009 Uwe Hermann +## Copyright (C) 2010 Piotr Esden-Tempski +## +## 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 3 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, see . +## + +# PREFIX ?= arm-none-eabi +PREFIX ?= arm-elf +CC = $(PREFIX)-gcc +LD = $(PREFIX)-gcc +OBJCOPY = $(PREFIX)-objcopy +OBJDUMP = $(PREFIX)-objdump +# Uncomment this line if you want to use the installed (not local) library. +# TOOLCHAIN_DIR = `dirname \`which $(CC)\``/../$(PREFIX) +TOOLCHAIN_DIR = ../../../.. +CFLAGS += -Os -g -Wall -Wextra -I$(TOOLCHAIN_DIR)/include -fno-common \ + -mcpu=cortex-m3 -mthumb +LDSCRIPT = $(BINARY).ld +LDFLAGS += -L$(TOOLCHAIN_DIR)/lib/lpc13xx -T$(LDSCRIPT) -nostartfiles \ + -Wl,--gc-sections +OBJS += $(BINARY).o + +OOCD ?= openocd +OOCD_INTERFACE ?= flossjtag +OOCD_BOARD ?= olimex_stm32_h103 + +# Be silent per default, but 'make V=1' will show all compiler calls. +ifneq ($(V),1) +Q := @ +NULL := 2>/dev/null +else +LDFLAGS += -Wl,--print-gc-sections +endif + +.SUFFIXES: .elf .bin .hex .srec .list .images +.SECONDEXPANSION: +.SECONDARY: + +all: images + +images: $(BINARY).images +flash: $(BINARY).flash + +%.images: %.bin %.hex %.srec %.list + @#echo "*** $* images generated ***" + +%.bin: %.elf + @#printf " OBJCOPY $(*).bin\n" + $(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin + +%.hex: %.elf + @#printf " OBJCOPY $(*).hex\n" + $(Q)$(OBJCOPY) -Oihex $(*).elf $(*).hex + +%.srec: %.elf + @#printf " OBJCOPY $(*).srec\n" + $(Q)$(OBJCOPY) -Osrec $(*).elf $(*).srec + +%.list: %.elf + @#printf " OBJDUMP $(*).list\n" + $(Q)$(OBJDUMP) -S $(*).elf > $(*).list + +%.elf: $(OBJS) $(LDSCRIPT) + @#printf " LD $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(LD) $(LDFLAGS) -o $(*).elf $(OBJS) -lopencm3_lpc13xx + +%.o: %.c Makefile + @#printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(CFLAGS) -o $@ -c $< + +clean: + $(Q)rm -f *.o + $(Q)rm -f *.elf + $(Q)rm -f *.bin + $(Q)rm -f *.hex + $(Q)rm -f *.srec + $(Q)rm -f *.list + +ifeq ($(OOCD_SERIAL),) +%.flash: %.hex + @printf " FLASH $<\n" + @# IMPORTANT: Don't use "resume", only "reset" will work correctly! + $(Q)$(OOCD) -f interface/$(OOCD_INTERFACE).cfg \ + -f board/$(OOCD_BOARD).cfg \ + -c "init" -c "reset init" \ + -c "stm32x mass_erase 0" \ + -c "flash write_image $(*).hex" \ + -c "reset" \ + -c "shutdown" $(NULL) +else +%.flash: %.hex + @printf " FLASH $<\n" + @# IMPORTANT: Don't use "resume", only "reset" will work correctly! + $(Q)$(OOCD) -f interface/$(OOCD_INTERFACE).cfg \ + -f board/$(OOCD_BOARD).cfg \ + -c "ft2232_serial $(OOCD_SERIAL)" \ + -c "init" -c "reset init" \ + -c "stm32x mass_erase 0" \ + -c "flash write_image $(*).hex" \ + -c "reset" \ + -c "shutdown" $(NULL) +endif + +.PHONY: images clean + diff --git a/examples/lpc13xx/lpc-p1343/Makefile b/examples/lpc13xx/lpc-p1343/Makefile new file mode 100644 index 0000000..36c1994 --- /dev/null +++ b/examples/lpc13xx/lpc-p1343/Makefile @@ -0,0 +1,38 @@ +## +## This file is part of the libopenstm32 project. +## +## Copyright (C) 2009 Uwe Hermann +## +## 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 3 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, see . +## + +# Be silent per default, but 'make V=1' will show all compiler calls. +ifneq ($(V),1) +Q := @ +# Do not print "Entering directory ...". +MAKEFLAGS += --no-print-directory +endif + +all: miniblink + +miniblink: + @printf " BUILD examples/lpc13xx/lpc-p1343/miniblink\n" + $(Q)$(MAKE) -C miniblink + +clean: + @printf " CLEAN examples/lpc13xx/lpc-p1343/miniblink\n" + $(Q)$(MAKE) -C miniblink clean + +.PHONY: miniblink clean + diff --git a/examples/lpc13xx/lpc-p1343/miniblink/Makefile b/examples/lpc13xx/lpc-p1343/miniblink/Makefile index 9f24080..6f4ffcc 100644 --- a/examples/lpc13xx/lpc-p1343/miniblink/Makefile +++ b/examples/lpc13xx/lpc-p1343/miniblink/Makefile @@ -19,5 +19,5 @@ BINARY = miniblink -include ../../../Makefile.include +include ../../Makefile.include diff --git a/examples/lpc13xx/lpc-p1343/miniblink/miniblink.ld b/examples/lpc13xx/lpc-p1343/miniblink/miniblink.ld index f313b21..1a362e6 100644 --- a/examples/lpc13xx/lpc-p1343/miniblink/miniblink.ld +++ b/examples/lpc13xx/lpc-p1343/miniblink/miniblink.ld @@ -26,8 +26,6 @@ MEMORY ram (rwx) : ORIGIN = 0x10000000, LENGTH = 8K } -/* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld - -/* FIXME: _stack is incorrect in that file, refactor! */ +/* Include the common ld script. */ +INCLUDE lpc13xx.ld diff --git a/examples/stm32/lisa-m/usb_dfu/usbdfu.ld b/examples/stm32/lisa-m/usb_dfu/usbdfu.ld index d7cd0c5..17bcbaa 100644 --- a/examples/stm32/lisa-m/usb_dfu/usbdfu.ld +++ b/examples/stm32/lisa-m/usb_dfu/usbdfu.ld @@ -25,5 +25,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/lisa-m/usb_hid/usbhid.ld b/examples/stm32/lisa-m/usb_hid/usbhid.ld index a393e0b..d810af4 100644 --- a/examples/stm32/lisa-m/usb_hid/usbhid.ld +++ b/examples/stm32/lisa-m/usb_hid/usbhid.ld @@ -28,5 +28,5 @@ MEMORY /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/mb525/fancyblink/fancyblink.ld b/examples/stm32/mb525/fancyblink/fancyblink.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/mb525/fancyblink/fancyblink.ld +++ b/examples/stm32/mb525/fancyblink/fancyblink.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/mb525/pwmleds/pwmleds.ld b/examples/stm32/mb525/pwmleds/pwmleds.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/mb525/pwmleds/pwmleds.ld +++ b/examples/stm32/mb525/pwmleds/pwmleds.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/obldc/can/can.ld b/examples/stm32/obldc/can/can.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/obldc/can/can.ld +++ b/examples/stm32/obldc/can/can.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/obldc/led/led.ld b/examples/stm32/obldc/led/led.ld index c8683d5..2c4a200 100644 --- a/examples/stm32/obldc/led/led.ld +++ b/examples/stm32/obldc/led/led.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/obldc/systick/systick.ld b/examples/stm32/obldc/systick/systick.ld index 0d79751..e8e2d2f 100644 --- a/examples/stm32/obldc/systick/systick.ld +++ b/examples/stm32/obldc/systick/systick.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/obldc/usart/usart.ld b/examples/stm32/obldc/usart/usart.ld index c8683d5..2c4a200 100644 --- a/examples/stm32/obldc/usart/usart.ld +++ b/examples/stm32/obldc/usart/usart.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/obldc/usart_irq/usart_irq.ld b/examples/stm32/obldc/usart_irq/usart_irq.ld index c8683d5..2c4a200 100644 --- a/examples/stm32/obldc/usart_irq/usart_irq.ld +++ b/examples/stm32/obldc/usart_irq/usart_irq.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/adc_temperature_sensor/adc.ld b/examples/stm32/other/adc_temperature_sensor/adc.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/adc_temperature_sensor/adc.ld +++ b/examples/stm32/other/adc_temperature_sensor/adc.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/dma_mem2mem/dma.ld b/examples/stm32/other/dma_mem2mem/dma.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/dma_mem2mem/dma.ld +++ b/examples/stm32/other/dma_mem2mem/dma.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/dogm128/main.ld b/examples/stm32/other/dogm128/main.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/dogm128/main.ld +++ b/examples/stm32/other/dogm128/main.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/i2c_stts75_sensor/i2c_stts75_sensor.ld b/examples/stm32/other/i2c_stts75_sensor/i2c_stts75_sensor.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/i2c_stts75_sensor/i2c_stts75_sensor.ld +++ b/examples/stm32/other/i2c_stts75_sensor/i2c_stts75_sensor.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/rtc/rtc.ld b/examples/stm32/other/rtc/rtc.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/other/rtc/rtc.ld +++ b/examples/stm32/other/rtc/rtc.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/systick/systick.ld b/examples/stm32/other/systick/systick.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/systick/systick.ld +++ b/examples/stm32/other/systick/systick.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/timer_interrupt/timer.ld b/examples/stm32/other/timer_interrupt/timer.ld index a1e9de5..0b89860 100644 --- a/examples/stm32/other/timer_interrupt/timer.ld +++ b/examples/stm32/other/timer_interrupt/timer.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/usb_cdcacm/cdcacm.ld b/examples/stm32/other/usb_cdcacm/cdcacm.ld index 6dcdb91..3981468 100644 --- a/examples/stm32/other/usb_cdcacm/cdcacm.ld +++ b/examples/stm32/other/usb_cdcacm/cdcacm.ld @@ -25,5 +25,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/usb_dfu/usbdfu.ld b/examples/stm32/other/usb_dfu/usbdfu.ld index d7cd0c5..17bcbaa 100644 --- a/examples/stm32/other/usb_dfu/usbdfu.ld +++ b/examples/stm32/other/usb_dfu/usbdfu.ld @@ -25,5 +25,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/other/usb_hid/usbhid.ld b/examples/stm32/other/usb_hid/usbhid.ld index 6dcdb91..3981468 100644 --- a/examples/stm32/other/usb_hid/usbhid.ld +++ b/examples/stm32/other/usb_hid/usbhid.ld @@ -25,5 +25,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/fancyblink/fancyblink.ld b/examples/stm32/stm32-h103/fancyblink/fancyblink.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/stm32-h103/fancyblink/fancyblink.ld +++ b/examples/stm32/stm32-h103/fancyblink/fancyblink.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/miniblink/miniblink.ld b/examples/stm32/stm32-h103/miniblink/miniblink.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/stm32-h103/miniblink/miniblink.ld +++ b/examples/stm32/stm32-h103/miniblink/miniblink.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/spi/spi.ld b/examples/stm32/stm32-h103/spi/spi.ld index 5ae60b8..29482cd 100644 --- a/examples/stm32/stm32-h103/spi/spi.ld +++ b/examples/stm32/stm32-h103/spi/spi.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/usart/usart.ld b/examples/stm32/stm32-h103/usart/usart.ld index b3bb9a4..fbc4c31 100644 --- a/examples/stm32/stm32-h103/usart/usart.ld +++ b/examples/stm32/stm32-h103/usart/usart.ld @@ -27,5 +27,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.ld b/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.ld index a393e0b..d810af4 100644 --- a/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.ld +++ b/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.ld @@ -28,5 +28,5 @@ MEMORY /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/usb_dfu/usbdfu.ld b/examples/stm32/stm32-h103/usb_dfu/usbdfu.ld index d7cd0c5..17bcbaa 100644 --- a/examples/stm32/stm32-h103/usb_dfu/usbdfu.ld +++ b/examples/stm32/stm32-h103/usb_dfu/usbdfu.ld @@ -25,5 +25,5 @@ MEMORY } /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/usb_hid/usbhid.ld b/examples/stm32/stm32-h103/usb_hid/usbhid.ld index a393e0b..d810af4 100644 --- a/examples/stm32/stm32-h103/usb_hid/usbhid.ld +++ b/examples/stm32/stm32-h103/usb_hid/usbhid.ld @@ -28,5 +28,5 @@ MEMORY /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/examples/stm32/stm32-h103/usb_iap/usbiap.ld b/examples/stm32/stm32-h103/usb_iap/usbiap.ld index a393e0b..d810af4 100644 --- a/examples/stm32/stm32-h103/usb_iap/usbiap.ld +++ b/examples/stm32/stm32-h103/usb_iap/usbiap.ld @@ -28,5 +28,5 @@ MEMORY /* Include the common ld script from libopenstm32. */ -INCLUDE libopenstm32.ld +INCLUDE stm32.ld diff --git a/lib/lpc13xx/Makefile b/lib/lpc13xx/Makefile new file mode 100644 index 0000000..ad44d15 --- /dev/null +++ b/lib/lpc13xx/Makefile @@ -0,0 +1,56 @@ +## +## This file is part of the libopenstm32 project. +## +## Copyright (C) 2009 Uwe Hermann +## +## 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 3 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, see . +## + +LIBNAME = libopencm3_lpc13xx + +# PREFIX ?= arm-none-eabi +PREFIX ?= arm-elf +CC = $(PREFIX)-gcc +AR = $(PREFIX)-ar +CFLAGS = -Os -g -Wall -Wextra -I../../include -fno-common \ + -mcpu=cortex-m3 -mthumb -Wstrict-prototypes \ + -ffunction-sections -fdata-sections +# ARFLAGS = rcsv +ARFLAGS = rcs +OBJS = gpio.o + +# VPATH += ../usb + +# Be silent per default, but 'make V=1' will show all compiler calls. +ifneq ($(V),1) +Q := @ +endif + +all: $(LIBNAME).a + +$(LIBNAME).a: $(OBJS) + @printf " AR $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(AR) $(ARFLAGS) $@ $^ + +%.o: %.c + @printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(CFLAGS) -o $@ -c $< + +clean: + @printf " CLEAN lib/lpc13xx\n" + $(Q)rm -f *.o + $(Q)rm -f $(LIBNAME).a + +.PHONY: clean + diff --git a/lib/lpc13xx/gpio.c b/lib/lpc13xx/gpio.c new file mode 100644 index 0000000..2454da5 --- /dev/null +++ b/lib/lpc13xx/gpio.c @@ -0,0 +1,25 @@ +/* + * This file is part of the libopenstm32 project. + * + * Copyright (C) 2010 Uwe Hermann + * + * 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 3 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, see . + */ + +#include + +void gpio_set(u32 gpioport, u16 gpios) +{ + GPIO_DATA(gpioport) = gpios; +} diff --git a/lib/lpc13xx/lpc13xx.ld b/lib/lpc13xx/lpc13xx.ld new file mode 100644 index 0000000..e9cd3b7 --- /dev/null +++ b/lib/lpc13xx/lpc13xx.ld @@ -0,0 +1,63 @@ +/* + * This file is part of the libopenstm32 project. + * + * Copyright (C) 2009 Uwe Hermann + * + * 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 3 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, see . + */ + +/* Generic linker script for LPC13XX targets using libopenstm32. */ + +/* Memory regions must be defined in the ld script which includes this one. */ + +/* Enforce emmition of the vector table */ +EXTERN (vector_table) + +/* Define sections. */ +SECTIONS +{ + . = ORIGIN(rom); + + .text : { + *(.vectors) /* Vector table */ + *(.text*) /* Program code */ + *(.rodata*) /* Read-only data */ + _etext = .; + } >rom + + . = ORIGIN(ram); + + .data : { + _data = .; + *(.data*) /* Read-write initialized data */ + _edata = .; + } >ram AT >rom + + .bss : { + *(.bss*) /* Read-write zero initialized data */ + *(COMMON) + _ebss = .; + } >ram AT >rom + + /* + * The .eh_frame section appears to be used for C++ exception handling. + * You may need to fix this if you're using C++. + */ + /DISCARD/ : { *(.eh_frame) } + + end = .; +} + +PROVIDE(_stack = 0x10000800); + diff --git a/lib/stm32/Makefile b/lib/stm32/Makefile index 0b0be66..d718ef0 100644 --- a/lib/stm32/Makefile +++ b/lib/stm32/Makefile @@ -17,7 +17,7 @@ ## along with this program. If not, see . ## -LIBNAME = libopenstm32 +LIBNAME = libopencm3_stm32 # PREFIX ?= arm-none-eabi PREFIX ?= arm-elf @@ -50,7 +50,7 @@ $(LIBNAME).a: $(OBJS) $(Q)$(CC) $(CFLAGS) -o $@ -c $< clean: - @printf " CLEAN lib\n" + @printf " CLEAN lib/stm32\n" $(Q)rm -f *.o $(Q)rm -f $(LIBNAME).a -- cgit v1.2.3