add stm32 dev template
This commit is contained in:
parent
5340e71dd1
commit
93c8d40a98
8 changed files with 322 additions and 0 deletions
67
templates/dev/stm32-blink/Makefile
Normal file
67
templates/dev/stm32-blink/Makefile
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
PREFIX ?= arm-none-eabi-
|
||||
CC = $(PREFIX)gcc
|
||||
OBJCOPY = $(PREFIX)objcopy
|
||||
SIZE = $(PREFIX)size
|
||||
|
||||
PNAME := blink
|
||||
BUILD := build
|
||||
|
||||
# libopencm3 is provided by the Nix shell
|
||||
OPENCM3_DIR ?= ""
|
||||
|
||||
SRCS := src/main.c
|
||||
OBJS := $(addprefix $(BUILD)/, $(SRCS:.c=.o))
|
||||
|
||||
# STM32G4
|
||||
CPU_FLAGS := -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
|
||||
|
||||
CFLAGS := $(CPU_FLAGS) \
|
||||
-DSTM32G4 \
|
||||
-Os -Wall -Wextra \
|
||||
-ffunction-sections -fdata-sections \
|
||||
-I$(OPENCM3_DIR)/include
|
||||
|
||||
LDFLAGS := $(CPU_FLAGS) \
|
||||
-nostartfiles \
|
||||
-Wl,--gc-sections \
|
||||
-L$(OPENCM3_DIR)/lib \
|
||||
-lopencm3_stm32g4
|
||||
|
||||
ELF := $(BUILD)/$(PNAME).elf
|
||||
BIN := $(BUILD)/$(PNAME).bin
|
||||
HEX := $(BUILD)/$(PNAME).hex
|
||||
|
||||
.PHONY: all clean flash size
|
||||
|
||||
all: $(BIN) $(HEX) size
|
||||
|
||||
$(BUILD)/%.o: %.c
|
||||
@mkdir -p $(@D)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
LDSCRIPT := $(BUILD)/stm32g474xe.ld
|
||||
|
||||
$(LDSCRIPT):
|
||||
@mkdir -p $(@D)
|
||||
$(CC) -I$(OPENCM3_DIR)/include $(shell python3 $(OPENCM3_DIR)/scripts/genlink.py $(OPENCM3_DIR)/ld/devices.data stm32g474xe DEFS) -P -E $(OPENCM3_DIR)/ld/linker.ld.S -o $@
|
||||
|
||||
$(ELF): $(OBJS) $(LDSCRIPT)
|
||||
$(CC) $(OBJS) $(LDFLAGS) -T$(LDSCRIPT) -o $@
|
||||
|
||||
$(BIN): $(ELF)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
|
||||
$(HEX): $(ELF)
|
||||
$(OBJCOPY) -O ihex $< $@
|
||||
|
||||
size: $(ELF)
|
||||
$(SIZE) $<
|
||||
|
||||
flash: $(BIN)
|
||||
openocd \
|
||||
-f interface/stlink.cfg \
|
||||
-f target/stm32g4x.cfg \
|
||||
-c "program $(BIN) verify reset exit 0x08000000"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD)
|
||||
Loading…
Add table
Add a link
Reference in a new issue