From c02fba51a47a68aea3233608f8d127520a1eefec Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Thu, 22 Nov 2012 12:05:33 -0600 Subject: lm4f: Add exammple for Stellaris Launchpad board Signed-off-by: Alexandru Gagniuc --- examples/lm4f/Makefile.include | 134 +++++++++++++++++++++ .../lm4f/stellaris-ek-lm4f120xl/ek-lm4f120xl.ld | 31 +++++ .../lm4f/stellaris-ek-lm4f120xl/miniblink/Makefile | 25 ++++ .../lm4f/stellaris-ek-lm4f120xl/miniblink/README | 9 ++ .../stellaris-ek-lm4f120xl/miniblink/miniblink.c | 93 ++++++++++++++ 5 files changed, 292 insertions(+) create mode 100644 examples/lm4f/Makefile.include create mode 100644 examples/lm4f/stellaris-ek-lm4f120xl/ek-lm4f120xl.ld create mode 100644 examples/lm4f/stellaris-ek-lm4f120xl/miniblink/Makefile create mode 100644 examples/lm4f/stellaris-ek-lm4f120xl/miniblink/README create mode 100644 examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c (limited to 'examples') diff --git a/examples/lm4f/Makefile.include b/examples/lm4f/Makefile.include new file mode 100644 index 0000000..332d24b --- /dev/null +++ b/examples/lm4f/Makefile.include @@ -0,0 +1,134 @@ +## +## This file is part of the libopencm3 project. +## +## Copyright (C) 2009 Uwe Hermann +## Copyright (C) 2010 Piotr Esden-Tempski +## Copyright (C) 2012 Alexandru Gagniuc +## +## 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 . +## + +PREFIX ?= arm-none-eabi +#PREFIX ?= arm-elf +CC = $(PREFIX)-gcc +LD = $(PREFIX)-gcc +OBJCOPY = $(PREFIX)-objcopy +OBJDUMP = $(PREFIX)-objdump + +TOOLCHAIN_DIR ?= ../../../.. +ifeq ($(wildcard ../../../../lib/libopencm3_lm4f.a),) +ifneq ($(strip $(shell which $(CC))),) +TOOLCHAIN_DIR := $(shell dirname `which $(CC)`)/../$(PREFIX) +endif +else +ifeq ($(V),1) +$(info We seem to be building the example in the source directory. Using local library!) +endif +endif + +CFLAGS += -O0 -g3 -Wall -Wextra -I$(TOOLCHAIN_DIR)/include -fno-common \ + -mcpu=cortex-m3 -mthumb -MD -DLM3S +LDSCRIPT ?= $(BINARY).ld +LDFLAGS += -L$(TOOLCHAIN_DIR)/lib \ + -T$(LDSCRIPT) -nostartfiles -Wl,--gc-sections +OBJS += $(BINARY).o + +OOCD ?= openocd +OOCD_INTERFACE ?= flossjtag +OOCD_BOARD ?= olimex_stm32_h103 +# FIXME + +# 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) $(TOOLCHAIN_DIR)/lib/libopencm3_lm3s.a + @#printf " LD $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(LD) $(LDFLAGS) -o $(*).elf $(OBJS) -lopencm3_lm3s + +%.o: %.c Makefile + @#printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(CFLAGS) -o $@ -c $< + +clean: + $(Q)rm -f *.o + $(Q)rm -f *.d + $(Q)rm -f *.elf + $(Q)rm -f *.bin + $(Q)rm -f *.hex + $(Q)rm -f *.srec + $(Q)rm -f *.list + +# FIXME: Replace STM32 stuff with proper LPC13XX OpenOCD support later. +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 + +-include $(OBJS:.o=.d) + diff --git a/examples/lm4f/stellaris-ek-lm4f120xl/ek-lm4f120xl.ld b/examples/lm4f/stellaris-ek-lm4f120xl/ek-lm4f120xl.ld new file mode 100644 index 0000000..8a096fa --- /dev/null +++ b/examples/lm4f/stellaris-ek-lm4f120xl/ek-lm4f120xl.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 TI Stellaris EX-LM4F120XL evaluation board. */ + +/* Define memory regions. */ +MEMORY +{ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 256K + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 32K +} + +/* Include the common ld script. */ +INCLUDE libopencm3_lm4f.ld + diff --git a/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/Makefile b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/Makefile new file mode 100644 index 0000000..9a014a7 --- /dev/null +++ b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/Makefile @@ -0,0 +1,25 @@ +## +## This file is part of the libopencm3 project. +## +## Copyright (C) 2012 Alexandru Gagniuc +## +## 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 . +## + +BINARY = miniblink + +LDSCRIPT = ../ek-lm4f120xl.ld + +include ../../Makefile.include + diff --git a/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/README b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/README new file mode 100644 index 0000000..f6441be --- /dev/null +++ b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/README @@ -0,0 +1,9 @@ +------------------------------------------------------------------------------ +README +------------------------------------------------------------------------------ + +Flashes the Red, Green and Blue diodes on the board, in order. +RED controlled by PF1 +Green controlled by PF3 +Blue controlled by PF2 + diff --git a/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c new file mode 100644 index 0000000..e5ebb5c --- /dev/null +++ b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c @@ -0,0 +1,93 @@ +/* + * This file is part of the libopencm3 project. + * + * Copyright (C) 2011 Gareth McMullin + * Copyright (C) 2012 Alexandru Gagniuc + * + * 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 . + */ + +/** + * \addtogroup Examples + * + * Flashes the Red, Green and Blue diodes on the board, in order. + * + * RED controlled by PF1 + * Green controlled by PF3 + * Blue controlled by PF2 + */ + +#include +#include + +void gpio_setup(void) +{ + SYSTEMCONTROL_RCGC2 |= 0x20; /* Enable GPIOF in run mode. */ + const u32 outpins = ((1<<3) | (1<<2) | (1<<1)); + + GPIO_DIR(GPIOF) |= outpins; /* Configure outputs. */ + GPIO_DEN(GPIOF) |= outpins; /* Enable digital function on outputs. */ +} + +#define FLASH_DELAY 800000 +int main(void) +{ + int i; + + gpio_setup(); + + /* Blink STATUS LED (PF0) on the board. */ + while (1) { + /* + * Flash the Red diode + */ + gpio_set(GPIOF, GPIO1); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_clear(GPIOF, GPIO1); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + + /* + * Flash the Green diode + */ + gpio_set(GPIOF, GPIO3); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_clear(GPIOF, GPIO3); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + + /* + * Flash the Blue diode + */ + gpio_set(GPIOF, GPIO2); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_clear(GPIOF, GPIO2); + + for (i = 0; i < FLASH_DELAY; i++) /* Wait a bit. */ + __asm__("nop"); + } + + return 0; +} -- cgit v1.2.3 From b2ac2ffc4b53262250f576cb1984508d6dd5a510 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Thu, 22 Nov 2012 16:04:32 -0600 Subject: lm4f: Remove erroneous references to lm3s Signed-off-by: Alexandru Gagniuc --- examples/lm4f/Makefile.include | 6 +++--- include/libopencm3/lm4f/doc-lm3s.h | 32 -------------------------------- include/libopencm3/lm4f/doc-lm4f.h | 32 ++++++++++++++++++++++++++++++++ include/libopencm3/lm4f/gpio.h | 6 +++--- include/libopencm3/lm4f/memorymap.h | 6 +++--- include/libopencm3/lm4f/systemcontrol.h | 4 ++-- lib/lm4f/gpio.c | 2 +- 7 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 include/libopencm3/lm4f/doc-lm3s.h create mode 100644 include/libopencm3/lm4f/doc-lm4f.h (limited to 'examples') diff --git a/examples/lm4f/Makefile.include b/examples/lm4f/Makefile.include index 332d24b..5244287 100644 --- a/examples/lm4f/Makefile.include +++ b/examples/lm4f/Makefile.include @@ -38,7 +38,7 @@ endif endif CFLAGS += -O0 -g3 -Wall -Wextra -I$(TOOLCHAIN_DIR)/include -fno-common \ - -mcpu=cortex-m3 -mthumb -MD -DLM3S + -mcpu=cortex-m3 -mthumb -MD -DLM4F LDSCRIPT ?= $(BINARY).ld LDFLAGS += -L$(TOOLCHAIN_DIR)/lib \ -T$(LDSCRIPT) -nostartfiles -Wl,--gc-sections @@ -85,9 +85,9 @@ flash: $(BINARY).flash @#printf " OBJDUMP $(*).list\n" $(Q)$(OBJDUMP) -S $(*).elf > $(*).list -%.elf: $(OBJS) $(LDSCRIPT) $(TOOLCHAIN_DIR)/lib/libopencm3_lm3s.a +%.elf: $(OBJS) $(LDSCRIPT) $(TOOLCHAIN_DIR)/lib/libopencm3_lm4f.a @#printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) $(LDFLAGS) -o $(*).elf $(OBJS) -lopencm3_lm3s + $(Q)$(LD) $(LDFLAGS) -o $(*).elf $(OBJS) -lopencm3_lm4f %.o: %.c Makefile @#printf " CC $(subst $(shell pwd)/,,$(@))\n" diff --git a/include/libopencm3/lm4f/doc-lm3s.h b/include/libopencm3/lm4f/doc-lm3s.h deleted file mode 100644 index 2503a7b..0000000 --- a/include/libopencm3/lm4f/doc-lm3s.h +++ /dev/null @@ -1,32 +0,0 @@ -/** @mainpage libopencm3 LM3S - -@version 1.0.0 - -@date 14 September 2012 - -API documentation for TI Stellaris LM3S Cortex M3 series. - -LGPL License Terms @ref lgpl_license -*/ - -/** @defgroup LM3S LM3S -Libraries for TI Stellaris LM3S series. - -@version 1.0.0 - -@date 7 September 2012 - -LGPL License Terms @ref lgpl_license -*/ - -/** @defgroup LM3S_defines LM3S Defines - -@brief Defined Constants and Types for the LM3S series - -@version 1.0.0 - -@date 14 September 2012 - -LGPL License Terms @ref lgpl_license -*/ - diff --git a/include/libopencm3/lm4f/doc-lm4f.h b/include/libopencm3/lm4f/doc-lm4f.h new file mode 100644 index 0000000..130da54 --- /dev/null +++ b/include/libopencm3/lm4f/doc-lm4f.h @@ -0,0 +1,32 @@ +/** @mainpage libopencm3 LM4F + +@version 1.0.0 + +@date 22 November 2012 + +API documentation for TI Stellaris LM4F Cortex M4F series. + +LGPL License Terms @ref lgpl_license +*/ + +/** @defgroup LM4F LM4F +Libraries for TI Stellaris LM4F series. + +@version 1.0.0 + +@date 22 November 2012 + +LGPL License Terms @ref lgpl_license +*/ + +/** @defgroup LM4F_defines LM4F Defines + +@brief Defined Constants and Types for the LM4F series + +@version 1.0.0 + +@date 22 November 2012 + +LGPL License Terms @ref lgpl_license +*/ + diff --git a/include/libopencm3/lm4f/gpio.h b/include/libopencm3/lm4f/gpio.h index 5296b74..19987c7 100644 --- a/include/libopencm3/lm4f/gpio.h +++ b/include/libopencm3/lm4f/gpio.h @@ -17,11 +17,11 @@ * along with this library. If not, see . */ -#ifndef LM3S_GPIO_H -#define LM3S_GPIO_H +#ifndef LM4F_GPIO_H +#define LM4F_GPIO_H #include -#include +#include /* --- Convenience macros -------------------------------------------------- */ diff --git a/include/libopencm3/lm4f/memorymap.h b/include/libopencm3/lm4f/memorymap.h index 55347bf..0e9b485 100644 --- a/include/libopencm3/lm4f/memorymap.h +++ b/include/libopencm3/lm4f/memorymap.h @@ -17,12 +17,12 @@ * along with this library. If not, see . */ -#ifndef LM3S_MEMORYMAP_H -#define LM3S_MEMORYMAP_H +#ifndef LM4F_MEMORYMAP_H +#define LM4F_MEMORYMAP_H #include -/* --- LM3S specific peripheral definitions ----------------------------- */ +/* --- LM4F specific peripheral definitions ----------------------------- */ #define GPIOA_APB_BASE (0x40004000) #define GPIOB_APB_BASE (0x40005000) diff --git a/include/libopencm3/lm4f/systemcontrol.h b/include/libopencm3/lm4f/systemcontrol.h index 32b0ba5..594c00c 100644 --- a/include/libopencm3/lm4f/systemcontrol.h +++ b/include/libopencm3/lm4f/systemcontrol.h @@ -17,8 +17,8 @@ * along with this library. If not, see . */ -#ifndef LM3S_SYSTEMCONTROL_H -#define LM3S_SYSTEMCONTROL_H +#ifndef LM4F_SYSTEMCONTROL_H +#define LM4F_SYSTEMCONTROL_H #include diff --git a/lib/lm4f/gpio.c b/lib/lm4f/gpio.c index a92c96e..2d50116 100644 --- a/lib/lm4f/gpio.c +++ b/lib/lm4f/gpio.c @@ -17,7 +17,7 @@ * along with this library. If not, see . */ -#include +#include void gpio_set(u32 gpioport, u8 gpios) { -- cgit v1.2.3 From c08bd17d905332333af1e5eb609848b2ec10477c Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Tue, 27 Nov 2012 08:20:54 -0600 Subject: lm4f: Fix problems with example Makefile.include Fix three distinct issues were present with examples/lm4f/Makefile.include: 1. Architecture flags were not being passed to the linker. This caused the linker to link against the wrong libraries when trying to use any C library, causing hard faults. 2. -lc and -lnosys were not linked against. Try using printf() without -lnosys 3. The makefile erroneously specified -mcpu=cortex-m3 instead of m4. Signed-off-by: Alexandru Gagniuc --- examples/lm4f/Makefile.include | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'examples') diff --git a/examples/lm4f/Makefile.include b/examples/lm4f/Makefile.include index 5244287..4d2675c 100644 --- a/examples/lm4f/Makefile.include +++ b/examples/lm4f/Makefile.include @@ -6,7 +6,7 @@ ## Copyright (C) 2012 Alexandru Gagniuc ## ## 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 +## it undebipr 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. ## @@ -20,7 +20,6 @@ ## PREFIX ?= arm-none-eabi -#PREFIX ?= arm-elf CC = $(PREFIX)-gcc LD = $(PREFIX)-gcc OBJCOPY = $(PREFIX)-objcopy @@ -37,17 +36,23 @@ $(info We seem to be building the example in the source directory. Using local l endif endif -CFLAGS += -O0 -g3 -Wall -Wextra -I$(TOOLCHAIN_DIR)/include -fno-common \ - -mcpu=cortex-m3 -mthumb -MD -DLM4F +ARCH_FLAGS = -mthumb -mcpu=cortex-m4 +CFLAGS += -O0 -g3 -Wall -Wextra -I$(TOOLCHAIN_DIR)/include \ + -fno-common $(ARCH_FLAGS) -MD -DLM4F LDSCRIPT ?= $(BINARY).ld -LDFLAGS += -L$(TOOLCHAIN_DIR)/lib \ - -T$(LDSCRIPT) -nostartfiles -Wl,--gc-sections +LDFLAGS += --static -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group \ + -L$(TOOLCHAIN_DIR)/lib \ + -T$(LDSCRIPT) -nostartfiles -Wl,--gc-sections \ + $(ARCH_FLAGS) + OBJS += $(BINARY).o +# Support for ICDI is not in any openocd release as of yet +# A patch to add support for ICDI is under review OOCD ?= openocd -OOCD_INTERFACE ?= flossjtag -OOCD_BOARD ?= olimex_stm32_h103 -# FIXME +OOCD_INTERFACE ?= ti-icdi +# No official board.cfg for the stellaris launchpad +OOCD_BOARD ?= stellaris_launchpad # Be silent per default, but 'make V=1' will show all compiler calls. ifneq ($(V),1) @@ -87,7 +92,7 @@ flash: $(BINARY).flash %.elf: $(OBJS) $(LDSCRIPT) $(TOOLCHAIN_DIR)/lib/libopencm3_lm4f.a @#printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) $(LDFLAGS) -o $(*).elf $(OBJS) -lopencm3_lm4f + $(Q)$(LD) -o $(*).elf $(OBJS) -lopencm3_lm4f $(LDFLAGS) %.o: %.c Makefile @#printf " CC $(subst $(shell pwd)/,,$(@))\n" @@ -102,7 +107,7 @@ clean: $(Q)rm -f *.srec $(Q)rm -f *.list -# FIXME: Replace STM32 stuff with proper LPC13XX OpenOCD support later. +# FIXME: Replace STM32 stuff with proper Stellaris support. ifeq ($(OOCD_SERIAL),) %.flash: %.hex @printf " FLASH $<\n" -- cgit v1.2.3 From c1381bf54aac2f092fccf5023c28ff0c4f6f2584 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Wed, 28 Nov 2012 17:13:27 -0600 Subject: lm4f: Compile with FPU support Specify the -mfloat-abi=hard and -mfpu=fpv4-sp-d16 flags so that FPU is enabled by default. While this compiles with FPU support, in order to use the floating point types, the FPU must be explicitly enabled at runtime. Signed-off-by: Alexandru Gagniuc --- examples/lm4f/Makefile.include | 2 +- lib/lm4f/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/lm4f/Makefile.include b/examples/lm4f/Makefile.include index 4d2675c..60987e8 100644 --- a/examples/lm4f/Makefile.include +++ b/examples/lm4f/Makefile.include @@ -36,7 +36,7 @@ $(info We seem to be building the example in the source directory. Using local l endif endif -ARCH_FLAGS = -mthumb -mcpu=cortex-m4 +ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -O0 -g3 -Wall -Wextra -I$(TOOLCHAIN_DIR)/include \ -fno-common $(ARCH_FLAGS) -MD -DLM4F LDSCRIPT ?= $(BINARY).ld diff --git a/lib/lm4f/Makefile b/lib/lm4f/Makefile index c4c2aa7..8f4c151 100644 --- a/lib/lm4f/Makefile +++ b/lib/lm4f/Makefile @@ -24,7 +24,7 @@ PREFIX ?= arm-none-eabi CC = $(PREFIX)-gcc AR = $(PREFIX)-ar CFLAGS = -Os -g -Wall -Wextra -I../../include -fno-common \ - -mcpu=cortex-m4 -mthumb -Wstrict-prototypes \ + -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -Wstrict-prototypes \ -ffunction-sections -fdata-sections -MD -DLM4F # ARFLAGS = rcsv ARFLAGS = rcs -- cgit v1.2.3 From 2477681c7dc11c17a016670461668dd1dab3ca29 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Sat, 24 Nov 2012 13:58:21 -0600 Subject: lm4f: Update stellaris example to new LM4F registers The LM4F provides new registers for system control. Each peripheral now has its own clock gating control register. The LM4F still supports the legacy registers for backwards compatibility. Use SYSCTL_RCGCGPIO instead of SYSCTL_RCGC to enable the GPIO. Signed-off-by: Alexandru Gagniuc --- examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c index e5ebb5c..0231a90 100644 --- a/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c +++ b/examples/lm4f/stellaris-ek-lm4f120xl/miniblink/miniblink.c @@ -27,13 +27,12 @@ * Green controlled by PF3 * Blue controlled by PF2 */ - #include #include void gpio_setup(void) { - SYSTEMCONTROL_RCGC2 |= 0x20; /* Enable GPIOF in run mode. */ + SYSCTL_RCGCGPIO |= 0x20; /* Enable GPIOF in run mode. */ const u32 outpins = ((1<<3) | (1<<2) | (1<<1)); GPIO_DIR(GPIOF) |= outpins; /* Configure outputs. */ -- cgit v1.2.3