aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-02-27 11:42:56 -0500
committerMarti Bolivar <mbolivar@leaflabs.com>2011-02-27 11:42:56 -0500
commit4e90248a2e81ec7bd8d3cfa858cef4a045cc1003 (patch)
treefa10544230e6e3e29dcdfc94fd5fc880dce009ba /Makefile
parenta949fe81d069fb3ee727537ba3d5f9f926129d62 (diff)
downloadlibrambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.tar.gz
librambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.zip
Cleaned out libmaple.h; this had wide-ranging implications.
Many of the #defines in libmaple.h were board-specific, not MCU-specific. Most of these were only used by code under libmaple/usb/. These were moved into usb_config.h, and are clearly marked as being terrible hacks. I'm going to treat the USB stack as a black box that we'll deal with later. Further, instead of having a variety of #defines like "How many USARTS do I have?", we decide that based on the density of the chip. This is determined by testing for STM32_MEDIUM_DENSITY or STM32_HIGH_DENSITY defines. libmaple currently doesn't support low-density chips, so that suffices. The Makefile will set these automatically based on the MCU. Other offending #defines are ERROR_LED_PORT and ERROR_LED_PIN; these were made optional, but they're set in the Makefile as a hack to keep things working.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile37
1 files changed, 30 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index a709696..149f54a 100644
--- a/Makefile
+++ b/Makefile
@@ -9,17 +9,27 @@ VENDOR_ID := 1EAF
PRODUCT_ID := 0003
# Guess the MCU based on the BOARD (can be overridden )
+# FIXME the error LED config needs to be in wirish/ instead
ifeq ($(BOARD), maple)
MCU := STM32F103RB
PRODUCT_ID := 0003
+ ERROR_LED_PORT := GPIOA_BASE
+ ERROR_LED_PIN := 5
+ DENSITY := STM32_MEDIUM_DENSITY
endif
ifeq ($(BOARD), maple_native)
MCU := STM32F103ZE
PRODUCT_ID := 0003
+ ERROR_LED_PORT := GPIOC_BASE
+ ERROR_LED_PIN := 15
+ DENSITY := STM32_HIGH_DENSITY
endif
ifeq ($(BOARD), maple_mini)
MCU := STM32F103CB
PRODUCT_ID := 0003
+ ERROR_LED_PORT := GPIOB_BASE
+ ERROR_LED_PIN := 1
+ DENSITY := STM32_MEDIUM_DENSITY
endif
# Useful paths
@@ -32,13 +42,26 @@ BUILD_PATH = build
LIBMAPLE_PATH := $(SRCROOT)/libmaple
SUPPORT_PATH := $(SRCROOT)/support
-# Useful variables
-GLOBAL_CFLAGS := -Os -g3 -gdwarf-2 -mcpu=cortex-m3 -mthumb -march=armv7-m -nostdlib \
- -ffunction-sections -fdata-sections -Wl,--gc-sections \
- -DBOARD_$(BOARD) -DMCU_$(MCU)
-GLOBAL_CXXFLAGS := -fno-rtti -fno-exceptions -Wall -DBOARD_$(BOARD) -DMCU_$(MCU)
-GLOBAL_ASFLAGS := -mcpu=cortex-m3 -march=armv7-m -mthumb -DBOARD_$(BOARD) \
- -DMCU_$(MCU) -x assembler-with-cpp
+# Compilation flags.
+# FIXME remove the ERROR_LED config
+GLOBAL_CFLAGS := -Os -g3 -gdwarf-2 -mcpu=cortex-m3 -mthumb -march=armv7-m \
+ -nostdlib \
+ -ffunction-sections -fdata-sections -Wl,--gc-sections \
+ -DBOARD_$(BOARD) -DMCU_$(MCU) \
+ -DERROR_LED_PORT=$(ERROR_LED_PORT) \
+ -DERROR_LED_PIN=$(ERROR_LED_PIN) \
+ -D$(DENSITY)
+GLOBAL_CXXFLAGS := -fno-rtti -fno-exceptions -Wall \
+ -DBOARD_$(BOARD) -DMCU_$(MCU) \
+ -DERROR_LED_PORT=$(ERROR_LED_PORT) \
+ -DERROR_LED_PIN=$(ERROR_LED_PIN) \
+ -D$(DENSITY)
+GLOBAL_ASFLAGS := -mcpu=cortex-m3 -march=armv7-m -mthumb \
+ -x assembler-with-cpp \
+ -DBOARD_$(BOARD) -DMCU_$(MCU) \
+ -DERROR_LED_PORT=$(ERROR_LED_PORT) \
+ -DERROR_LED_PIN=$(ERROR_LED_PIN) \
+ -D$(DENSITY)
LDDIR := $(SUPPORT_PATH)/ld
LDFLAGS = -T$(LDDIR)/$(LDSCRIPT) -L$(LDDIR) \