diff options
Diffstat (limited to 'support')
-rw-r--r-- | support/ld/stm32/mem/sram_64k_flash_128k/mem-jtag.inc | 5 | ||||
-rw-r--r-- | support/ld/stm32/mem/sram_64k_flash_256k/mem-jtag.inc | 5 | ||||
-rw-r--r-- | support/ld/stm32/series/stm32f2-f4/dynamic_efficiency/vector_symbols.inc | 100 | ||||
-rw-r--r-- | support/ld/stm32/series/stm32f2-f4/stm32f2/vector_symbols.inc (renamed from support/ld/stm32/series/stm32f2/vector_symbols.inc) | 0 | ||||
-rw-r--r-- | support/make/board-includes/robotis_cm900.mk (renamed from support/make/board-includes/cm900.mk) | 0 | ||||
-rw-r--r-- | support/make/board-includes/robotis_opencm904.mk (renamed from support/make/board-includes/opencm904.mk) | 0 | ||||
-rw-r--r-- | support/make/board-includes/st_nucleo_f103rb.mk (renamed from support/make/board-includes/nucleo.mk) | 0 | ||||
-rw-r--r-- | support/make/board-includes/st_stm32f401cdiscovery.mk | 7 | ||||
-rw-r--r-- | support/make/board-includes/st_stm32vldiscovery.mk (renamed from support/make/board-includes/VLDiscovery.mk) | 0 | ||||
-rw-r--r-- | support/make/target-config.mk | 29 |
10 files changed, 137 insertions, 9 deletions
diff --git a/support/ld/stm32/mem/sram_64k_flash_128k/mem-jtag.inc b/support/ld/stm32/mem/sram_64k_flash_128k/mem-jtag.inc new file mode 100644 index 0000000..e5a30cb --- /dev/null +++ b/support/ld/stm32/mem/sram_64k_flash_128k/mem-jtag.inc @@ -0,0 +1,5 @@ +MEMORY +{ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + rom (rx) : ORIGIN = 0x08000000, LENGTH = 128K +} diff --git a/support/ld/stm32/mem/sram_64k_flash_256k/mem-jtag.inc b/support/ld/stm32/mem/sram_64k_flash_256k/mem-jtag.inc new file mode 100644 index 0000000..1e82e56 --- /dev/null +++ b/support/ld/stm32/mem/sram_64k_flash_256k/mem-jtag.inc @@ -0,0 +1,5 @@ +MEMORY +{ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + rom (rx) : ORIGIN = 0x08000000, LENGTH = 256K +} diff --git a/support/ld/stm32/series/stm32f2-f4/dynamic_efficiency/vector_symbols.inc b/support/ld/stm32/series/stm32f2-f4/dynamic_efficiency/vector_symbols.inc new file mode 100644 index 0000000..c013784 --- /dev/null +++ b/support/ld/stm32/series/stm32f2-f4/dynamic_efficiency/vector_symbols.inc @@ -0,0 +1,100 @@ +EXTERN(__msp_init) +EXTERN(__exc_reset) +EXTERN(__exc_nmi) +EXTERN(__exc_hardfault) +EXTERN(__exc_memmanage) +EXTERN(__exc_busfault) +EXTERN(__exc_usagefault) +EXTERN(__stm32reservedexception7) +EXTERN(__stm32reservedexception8) +EXTERN(__stm32reservedexception9) +EXTERN(__stm32reservedexception10) +EXTERN(__exc_svc) +EXTERN(__exc_debug_monitor) +EXTERN(__stm32reservedexception13) +EXTERN(__exc_pendsv) +EXTERN(__exc_systick) + +EXTERN(__irq_wwdg) +EXTERN(__irq_pvd) +EXTERN(__irq_tamp_stamp) +EXTERN(__irq_rtc_wkup) +EXTERN(__irq_flash) +EXTERN(__irq_rcc) +EXTERN(__irq_exti0) +EXTERN(__irq_exti1) +EXTERN(__irq_exti2) +EXTERN(__irq_exti3) +EXTERN(__irq_exti4) +EXTERN(__irq_dma1_stream0) +EXTERN(__irq_dma1_stream1) +EXTERN(__irq_dma1_stream2) +EXTERN(__irq_dma1_stream3) +EXTERN(__irq_dma1_stream4) +EXTERN(__irq_dma1_stream5) +EXTERN(__irq_dma1_stream6) +EXTERN(__irq_adc) +EXTERN(__irq_can1_tx) +EXTERN(__irq_can1_rx0) +EXTERN(__irq_can1_rx1) +EXTERN(__irq_can1_sce) +EXTERN(__irq_exti9_5) +EXTERN(__irq_tim1_brk_tim9) +EXTERN(__irq_tim1_up_tim10) +EXTERN(__irq_tim1_trg_com_tim11) +EXTERN(__irq_tim1_cc) +EXTERN(__irq_tim2) +EXTERN(__irq_tim3) +EXTERN(__irq_tim4) +EXTERN(__irq_i2c1_ev) +EXTERN(__irq_i2c1_er) +EXTERN(__irq_i2c2_ev) +EXTERN(__irq_i2c2_er) +EXTERN(__irq_spi1) +EXTERN(__irq_spi2) +EXTERN(__irq_usart1) +EXTERN(__irq_usart2) +EXTERN(__irq_usart3) +EXTERN(__irq_exti15_10) +EXTERN(__irq_rtc_alarm) +EXTERN(__irq_otg_fs_wkup) +EXTERN(__irq_tim8_brk_tim12) +EXTERN(__irq_tim8_up_tim13) +EXTERN(__irq_tim8_trg_com_tim14) +EXTERN(__irq_tim8_cc) +EXTERN(__irq_dma1_stream7) +EXTERN(__irq_fsmc) +EXTERN(__irq_sdio) +EXTERN(__irq_tim5) +EXTERN(__irq_spi3) +EXTERN(__irq_uart4) +EXTERN(__irq_uart5) +EXTERN(__irq_tim6_dac) +EXTERN(__irq_tim7) +EXTERN(__irq_dma2_stream0) +EXTERN(__irq_dma2_stream1) +EXTERN(__irq_dma2_stream2) +EXTERN(__irq_dma2_stream3) +EXTERN(__irq_dma2_stream4) +EXTERN(__irq_eth) +EXTERN(__irq_eth_wkup) +EXTERN(__irq_can2_tx) +EXTERN(__irq_can2_rx0) +EXTERN(__irq_can2_rx1) +EXTERN(__irq_can2_sce) +EXTERN(__irq_otg_fs) +EXTERN(__irq_dma2_stream5) +EXTERN(__irq_dma2_stream6) +EXTERN(__irq_dma2_stream7) +EXTERN(__irq_usart6) +EXTERN(__irq_i2c3_ev) +EXTERN(__irq_i2c3_er) +EXTERN(__irq_otg_hs_ep1_out) +EXTERN(__irq_otg_hs_ep1_in) +EXTERN(__irq_otg_hs_wkup) +EXTERN(__irq_otg_hs) +EXTERN(__irq_dcmi) +EXTERN(__irq_cryp) +EXTERN(__irq_hash_rng) +EXTERN(__irq_fpu) +EXTERN(__irq_spi4) diff --git a/support/ld/stm32/series/stm32f2/vector_symbols.inc b/support/ld/stm32/series/stm32f2-f4/stm32f2/vector_symbols.inc index d275ec3..d275ec3 100644 --- a/support/ld/stm32/series/stm32f2/vector_symbols.inc +++ b/support/ld/stm32/series/stm32f2-f4/stm32f2/vector_symbols.inc diff --git a/support/make/board-includes/cm900.mk b/support/make/board-includes/robotis_cm900.mk index 9f70a1b..9f70a1b 100644 --- a/support/make/board-includes/cm900.mk +++ b/support/make/board-includes/robotis_cm900.mk diff --git a/support/make/board-includes/opencm904.mk b/support/make/board-includes/robotis_opencm904.mk index 64d3351..64d3351 100644 --- a/support/make/board-includes/opencm904.mk +++ b/support/make/board-includes/robotis_opencm904.mk diff --git a/support/make/board-includes/nucleo.mk b/support/make/board-includes/st_nucleo_f103rb.mk index a2943ce..a2943ce 100644 --- a/support/make/board-includes/nucleo.mk +++ b/support/make/board-includes/st_nucleo_f103rb.mk diff --git a/support/make/board-includes/st_stm32f401cdiscovery.mk b/support/make/board-includes/st_stm32f401cdiscovery.mk new file mode 100644 index 0000000..6eb584f --- /dev/null +++ b/support/make/board-includes/st_stm32f401cdiscovery.mk @@ -0,0 +1,7 @@ +MCU := STM32F401VC +PRODUCT_ID := 0003 +ERROR_LED_PORT := GPIOD +ERROR_LED_PIN := 12 +MCU_SERIES := stm32f4 +MCU_F4_LINE := dynamic_efficiency +LD_MEM_DIR := sram_64k_flash_256k diff --git a/support/make/board-includes/VLDiscovery.mk b/support/make/board-includes/st_stm32vldiscovery.mk index 76cd85a..76cd85a 100644 --- a/support/make/board-includes/VLDiscovery.mk +++ b/support/make/board-includes/st_stm32vldiscovery.mk diff --git a/support/make/target-config.mk b/support/make/target-config.mk index 0e3a2c2..68cddbf 100644 --- a/support/make/target-config.mk +++ b/support/make/target-config.mk @@ -24,31 +24,42 @@ include $(BOARD_INCLUDE_DIR)/$(BOARD).mk # Configuration derived from $(BOARD).mk -LD_SERIES_PATH := $(LDDIR)/stm32/series/$(MCU_SERIES) +TARGET_SERIES_MODULE := $(MCU_SERIES) + +# Override TARGET_SERIES_MODULE for STM32F2 and STM32F4, which are +# basically the same and thus share a module. +ifeq ($(MCU_SERIES), stm32f2) +TARGET_SERIES_MODULE := stm32f2-f4 +endif +ifeq ($(MCU_SERIES), stm32f4) +TARGET_SERIES_MODULE := stm32f2-f4 +endif + +LIBMAPLE_MODULE_SERIES := $(LIBMAPLE_PATH)/$(TARGET_SERIES_MODULE) +LD_SERIES_PATH := $(LDDIR)/stm32/series/$(TARGET_SERIES_MODULE) LD_MEM_PATH := $(LDDIR)/stm32/mem/$(LD_MEM_DIR) + ifeq ($(MCU_SERIES), stm32f1) +TARGET_FLAGS += -mcpu=cortex-m3 -march=armv7-m # 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) +LD_SERIES_PATH := $(LD_SERIES_PATH)/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 +LD_SERIES_PATH := $(LD_SERIES_PATH)/$(MCU_F4_LINE) +TARGET_FLAGS += -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard \ + -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wdouble-promotion endif TARGET_LDFLAGS += -Xlinker -T$(LD_SCRIPT_PATH) \ -L $(LD_SERIES_PATH) \ -L $(LD_MEM_PATH) \ - -L $(LDDIR) + -L $(LDDIR) $(TARGET_FLAGS) -mthumb 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) |