mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-12-15 20:33:16 +00:00
Initial check-in for STM32 board
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
MCU := STM32F100RB
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOC
|
||||
ERROR_LED_PIN := 9
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := value
|
||||
LD_MEM_DIR := sram_8k_flash_128k
|
||||
@@ -0,0 +1,15 @@
|
||||
MCU := STM32F103C8
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOB
|
||||
ERROR_LED_PIN := 2
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
# This crap is due to ld-script limitations. If you know of a better
|
||||
# way to go about this (like some magic ld switches to specify MEMORY
|
||||
# at the command line), please tell us!
|
||||
ifeq ($(BOOTLOADER),maple)
|
||||
LD_MEM_DIR := sram_20k_flash_128k
|
||||
endif
|
||||
ifeq ($(BOOTLOADER),robotis)
|
||||
LD_MEM_DIR := sram_20k_flash_128k_robotis
|
||||
endif
|
||||
@@ -0,0 +1,10 @@
|
||||
MCU := STM32F103RB
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOA
|
||||
ERROR_LED_PIN := 5
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
# This crap is due to ld-script limitations. If you know of a better
|
||||
# way to go about this (like some magic ld switches to specify MEMORY
|
||||
# at the command line), please tell us!
|
||||
LD_MEM_DIR := sram_20k_flash_128k
|
||||
@@ -0,0 +1,7 @@
|
||||
MCU := STM32F103RE
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOA
|
||||
ERROR_LED_PIN := 5
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
LD_MEM_DIR := sram_64k_flash_512k
|
||||
@@ -0,0 +1,7 @@
|
||||
MCU := STM32F103CB
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOB
|
||||
ERROR_LED_PIN := 1
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
LD_MEM_DIR := sram_20k_flash_128k
|
||||
@@ -0,0 +1,7 @@
|
||||
MCU := STM32F103ZE
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOC
|
||||
ERROR_LED_PIN := 15
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
LD_MEM_DIR := maple_native # The SRAM chip makes this board special
|
||||
@@ -0,0 +1,7 @@
|
||||
MCU := STM32F103RB
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOC
|
||||
ERROR_LED_PIN := 12
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
LD_MEM_DIR := sram_20k_flash_128k
|
||||
@@ -0,0 +1,15 @@
|
||||
MCU := STM32F103CB
|
||||
PRODUCT_ID := 0003
|
||||
ERROR_LED_PORT := GPIOB
|
||||
ERROR_LED_PIN := 9
|
||||
MCU_SERIES := stm32f1
|
||||
MCU_F1_LINE := performance
|
||||
# This crap is due to ld-script limitations. If you know of a better
|
||||
# way to go about this (like some magic ld switches to specify MEMORY
|
||||
# at the command line), please tell us!
|
||||
ifeq ($(BOOTLOADER),maple)
|
||||
LD_MEM_DIR := sram_20k_flash_128k
|
||||
endif
|
||||
ifeq ($(BOOTLOADER),robotis)
|
||||
LD_MEM_DIR := sram_20k_flash_128k_robotis
|
||||
endif
|
||||
@@ -0,0 +1,5 @@
|
||||
MCU := STM32F207IG
|
||||
ERROR_LED_PORT := GPIOG
|
||||
ERROR_LED_PIN := 6
|
||||
MCU_SERIES := stm32f2
|
||||
LD_MEM_DIR := sram_112k_flash_1024k
|
||||
59
BootLoaders/Boards/stm32/system/support/make/build-rules.mk
Normal file
59
BootLoaders/Boards/stm32/system/support/make/build-rules.mk
Normal file
@@ -0,0 +1,59 @@
|
||||
# Useful tools
|
||||
CROSS_COMPILE ?= arm-none-eabi-
|
||||
|
||||
CC := $(CROSS_COMPILE)gcc
|
||||
CXX := $(CROSS_COMPILE)g++
|
||||
LD := $(CROSS_COMPILE)ld -v
|
||||
AR := $(CROSS_COMPILE)ar
|
||||
AS := $(CROSS_COMPILE)gcc
|
||||
OBJCOPY := $(CROSS_COMPILE)objcopy
|
||||
DISAS := $(CROSS_COMPILE)objdump
|
||||
OBJDUMP := $(CROSS_COMPILE)objdump
|
||||
SIZE := $(CROSS_COMPILE)size
|
||||
DFU ?= dfu-util
|
||||
|
||||
# Suppress annoying output unless V is set
|
||||
ifndef V
|
||||
SILENT_CC = @echo ' [CC] ' $(@:$(BUILD_PATH)/%.o=%.c);
|
||||
SILENT_AS = @echo ' [AS] ' $(@:$(BUILD_PATH)/%.o=%.S);
|
||||
SILENT_CXX = @echo ' [CXX] ' $(@:$(BUILD_PATH)/%.o=%.cpp);
|
||||
SILENT_LD = @echo ' [LD] ' $(@F);
|
||||
SILENT_AR = @echo ' [AR] '
|
||||
SILENT_OBJCOPY = @echo ' [OBJCOPY] ' $(@F);
|
||||
SILENT_DISAS = @echo ' [DISAS] ' $(@:$(BUILD_PATH)/%.bin=%).disas;
|
||||
SILENT_OBJDUMP = @echo ' [OBJDUMP] ' $(OBJDUMP);
|
||||
endif
|
||||
|
||||
# Extra build configuration
|
||||
|
||||
BUILDDIRS :=
|
||||
TGT_BIN :=
|
||||
|
||||
CFLAGS = $(GLOBAL_CFLAGS) $(TGT_CFLAGS)
|
||||
CXXFLAGS = $(GLOBAL_CXXFLAGS) $(TGT_CXXFLAGS)
|
||||
ASFLAGS = $(GLOBAL_ASFLAGS) $(TGT_ASFLAGS)
|
||||
|
||||
# Hacks to determine extra libraries we need to link against based on
|
||||
# the toolchain. The default specifies no extra libraries, but it can
|
||||
# be overridden.
|
||||
LD_TOOLCHAIN_PATH := $(LDDIR)/toolchains/generic
|
||||
ifneq ($(findstring ARM/embedded,$(shell $(CC) --version)),)
|
||||
# GCC ARM Embedded, https://launchpad.net/gcc-arm-embedded/
|
||||
LD_TOOLCHAIN_PATH := $(LDDIR)/toolchains/gcc-arm-embedded
|
||||
endif
|
||||
ifneq ($(findstring Linaro GCC,$(shell $(CC) --version)),)
|
||||
# Summon/Linaro GCC ARM Embedded, https://github.com/esden/summon-arm-toolchain
|
||||
LD_TOOLCHAIN_PATH := $(LDDIR)/toolchains/gcc-arm-embedded
|
||||
endif
|
||||
# Add toolchain directory to LD search path
|
||||
TOOLCHAIN_LDFLAGS := -L $(LD_TOOLCHAIN_PATH)
|
||||
|
||||
# General directory independent build rules, generate dependency information
|
||||
$(BUILD_PATH)/%.o: %.c
|
||||
$(SILENT_CC) $(CC) $(CFLAGS) -MMD -MP -MF $(@:%.o=%.d) -MT $@ -o $@ -c $<
|
||||
|
||||
$(BUILD_PATH)/%.o: %.cpp
|
||||
$(SILENT_CXX) $(CXX) $(CFLAGS) $(CXXFLAGS) -MMD -MP -MF $(@:%.o=%.d) -MT $@ -o $@ -c $<
|
||||
|
||||
$(BUILD_PATH)/%.o: %.S
|
||||
$(SILENT_AS) $(AS) $(ASFLAGS) -MMD -MP -MF $(@:%.o=%.d) -MT $@ -o $@ -c $<
|
||||
@@ -0,0 +1,5 @@
|
||||
define LIBMAPLE_MODULE_template
|
||||
dir := $(1)
|
||||
include $$(dir)/rules.mk
|
||||
endef
|
||||
|
||||
18
BootLoaders/Boards/stm32/system/support/make/footer.mk
Normal file
18
BootLoaders/Boards/stm32/system/support/make/footer.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
sFILES_$(d) := $(sSRCS_$(d):%=$(d)/%)
|
||||
cFILES_$(d) := $(cSRCS_$(d):%=$(d)/%)
|
||||
cppFILES_$(d) := $(cppSRCS_$(d):%=$(d)/%)
|
||||
|
||||
OBJS_$(d) := $(sFILES_$(d):%.S=$(BUILD_PATH)/%.o) \
|
||||
$(cFILES_$(d):%.c=$(BUILD_PATH)/%.o) \
|
||||
$(cppFILES_$(d):%.cpp=$(BUILD_PATH)/%.o)
|
||||
DEPS_$(d) := $(OBJS_$(d):%.o=%.d)
|
||||
|
||||
$(OBJS_$(d)): TGT_CFLAGS := $(CFLAGS_$(d))
|
||||
$(OBJS_$(d)): TGT_CXXFLAGS := $(CXXFLAGS_$(d))
|
||||
$(OBJS_$(d)): TGT_ASFLAGS := $(ASFLAGS_$(d))
|
||||
|
||||
TGT_BIN += $(OBJS_$(d))
|
||||
|
||||
-include $(DEPS_$(d))
|
||||
d := $(dirstack_$(sp))
|
||||
sp := $(basename $(sp))
|
||||
4
BootLoaders/Boards/stm32/system/support/make/header.mk
Normal file
4
BootLoaders/Boards/stm32/system/support/make/header.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
sp := $(sp).x
|
||||
dirstack_$(sp) := $(d)
|
||||
d := $(dir)
|
||||
BUILDDIRS += $(BUILD_PATH)/$(d)
|
||||
@@ -0,0 +1,54 @@
|
||||
# TARGET_FLAGS are to be passed while compiling, assembling, linking.
|
||||
TARGET_FLAGS :=
|
||||
# TARGET_LDFLAGS go to the linker
|
||||
TARGET_LDFLAGS :=
|
||||
|
||||
# Configuration derived from $(MEMORY_TARGET)
|
||||
|
||||
LD_SCRIPT_PATH := $(LDDIR)/$(MEMORY_TARGET).ld
|
||||
|
||||
ifeq ($(MEMORY_TARGET), ram)
|
||||
VECT_BASE_ADDR := VECT_TAB_RAM
|
||||
endif
|
||||
ifeq ($(MEMORY_TARGET), flash)
|
||||
VECT_BASE_ADDR := VECT_TAB_FLASH
|
||||
endif
|
||||
ifeq ($(MEMORY_TARGET), jtag)
|
||||
VECT_BASE_ADDR := VECT_TAB_BASE
|
||||
endif
|
||||
|
||||
# Pull in the board configuration file here, so it can override the
|
||||
# above.
|
||||
|
||||
include $(BOARD_INCLUDE_DIR)/$(BOARD).mk
|
||||
|
||||
# Configuration derived from $(BOARD).mk
|
||||
|
||||
LD_SERIES_PATH := $(LDDIR)/stm32/series/$(MCU_SERIES)
|
||||
LD_MEM_PATH := $(LDDIR)/stm32/mem/$(LD_MEM_DIR)
|
||||
ifeq ($(MCU_SERIES), stm32f1)
|
||||
# Due to the Balkanization on F1, we need to specify the line when
|
||||
# making linker decisions.
|
||||
LD_SERIES_PATH := $(LD_SERIES_PATH)/$(MCU_F1_LINE)
|
||||
endif
|
||||
|
||||
ifeq ($(MCU_SERIES), stm32f1)
|
||||
TARGET_FLAGS += -mcpu=cortex-m3 -march=armv7-m
|
||||
endif
|
||||
ifeq ($(MCU_SERIES), stm32f2)
|
||||
TARGET_FLAGS += -mcpu=cortex-m3 -march=armv7-m
|
||||
endif
|
||||
ifeq ($(MCU_SERIES), stm32f4)
|
||||
TARGET_FLAGS += -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16
|
||||
endif
|
||||
|
||||
TARGET_LDFLAGS += -Xlinker -T$(LD_SCRIPT_PATH) \
|
||||
-L $(LD_SERIES_PATH) \
|
||||
-L $(LD_MEM_PATH) \
|
||||
-L $(LDDIR)
|
||||
TARGET_FLAGS += -mthumb -DBOARD_$(BOARD) -DMCU_$(MCU) \
|
||||
-DERROR_LED_PORT=$(ERROR_LED_PORT) \
|
||||
-DERROR_LED_PIN=$(ERROR_LED_PIN) \
|
||||
-D$(VECT_BASE_ADDR)
|
||||
|
||||
LIBMAPLE_MODULE_SERIES := $(LIBMAPLE_PATH)/$(MCU_SERIES)
|
||||
Reference in New Issue
Block a user