123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- PROJECT=main
- # Use newlib-nano. To disable it, specify USE_NANO=
- USE_NANO=--specs=nano.specs
- # Use semihosting
- USE_SEMIHOST=--specs=rdimon.specs
- # Use retarget
- # USE_SEMIHOST=--specs=nosys.specs
- # Compiler & Linker
- CC=arm-none-eabi-gcc
- AR=arm-none-eabi-ar
- AS=arm-none-eabi-as
- LD=arm-none-eabi-ld
- SIZE=arm-none-eabi-size
- OBJCOPY=arm-none-eabi-objcopy
- OBJDUMP=arm-none-eabi-objdump
- LDSCRIPT=STM32L432KCUx_FLASH.ld
- INCLUDES = \
- -I../Include \
- -I../../../../Include \
- -I../../../../../STM32L4xx_HAL_Driver/Inc
- SOURCES = main.c \
- system_stm32l4xx.c \
- startup_stm32l432xx.s \
- # Options for specific architecture
- ARCH_FLAGS=-mthumb -mcpu=cortex-m4
- # -Os -flto -ffunction-sections -fdata-sections to compile for code size
- # CFLAGS=$(ARCH_FLAGS) $(INCLUDES) -Os -flto -ffunction-sections -fdata-sections
- CFLAGS=$(ARCH_FLAGS) $(INCLUDES) -g -flto -ffunction-sections -fdata-sections
- # Link for code size and create a map file
- # If not using semihosting/retarget:
- # LFLAGS=$(USE_NANO) $(USE_SEMIHOST) -nostartfiles -Wl,--gc-sections,-Map=$(PROJECT).map
- # Else:
- LFLAGS=$(USE_NANO) $(USE_SEMIHOST) -Wl,--gc-sections,-Map=$(PROJECT).map -T $(LDSCRIPT)
- all: $(PROJECT).bin $(PROJECT).dis $(PROJECT).elf
- # Build ELF w/ symbols
- $(PROJECT).elf: $(SOURCES)
- $(CC) $^ $(CFLAGS) $(LFLAGS) -o $@
- # Generate binary to flash
- $(PROJECT).bin: $(PROJECT).elf
- $(OBJCOPY) -O binary $< $@
- # Export dissassembly of binary
- $(PROJECT).dis: $(PROJECT).elf
- $(OBJDUMP) -S -d -marm $< -Mforce-thumb > $@
- clean:
- rm -f *.elf *.bin *.map *.dis *.o
|