-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
64 lines (50 loc) · 2.02 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
BIN=stm32vldiscovery-linux-template
TOOLS_PATH=/home/daniil/arm-cs-tools
TOOLS_PREFIX=arm-none-eabi-
TOOLS_VERSION=4.6.3
CFLAGS=-c -std=c99 -mcpu=cortex-m3 -mthumb -Wall -O0 -mapcs-frame -D__thumb2__=1
#For easy encoding of cyrillic into hd44780 char table
CFLAGS+=-fexec-charset=CP1251
CFLAGS+=-msoft-float -gdwarf-2 -mno-sched-prolog -fno-hosted -mtune=cortex-m3
CFLAGS+=-march=armv7-m -mfix-cortex-m3-ldrd -ffunction-sections -fdata-sections
CFLAGS+=-I./cmsis -I./stm32_lib -I.
ASFLAGS=-mcpu=cortex-m3 -I./cmsis -I./stm32_lib -gdwarf-2 -gdwarf-2
LDFLAGS=-static -mcpu=cortex-m3 -mthumb -mthumb-interwork -Wl,--start-group
LDFLAGS+=-L$(TOOLS_PATH)/lib/gcc/arm-none-eabi/$(TOOLS_VERSION)/thumb2
LDFLAGS+=-L$(TOOLS_PATH)/arm-none-eabi/lib/thumb2 -lc -lg -lstdc++ -lsupc++ -lgcc -lm
# LDFLAGS+=--section-start=.text=0x08000000
LDFLAGS+=-Wl,--end-group -Xlinker -Map -Xlinker $(BIN).map -Xlinker
LDFLAGS+=-T ./stm32_lib/device_support/gcc/stm32f100rb_flash.ld -o $(BIN).elf
CC=$(TOOLS_PATH)/bin/$(TOOLS_PREFIX)gcc-$(TOOLS_VERSION)
AS=$(TOOLS_PATH)/bin/$(TOOLS_PREFIX)as
SIZE=$(TOOLS_PATH)/bin/$(TOOLS_PREFIX)size
CMSISSRC=./cmsis/core_cm3.c
STM32_LIBSRC=./stm32_lib/system_stm32f10x.c
STM32_LIBSRC+=./stm32_lib/stm32f10x_rcc.c ./stm32_lib/stm32f10x_gpio.c
STM32_LIBSRC+=./hd44780.c ./hd44780_stm32f10x.c ./newlib_stubs.c
SRC=main.c
OBJ=core_cm3.o system_stm32f10x.o startup_stm32f10x_md_vl.o
OBJ+=stm32f10x_rcc.o stm32f10x_gpio.o
OBJ+=hd44780.o hd44780_stm32f10x.o newlib_stubs.o
OBJ+=main.o
all: ccmsis cstm32_lib cc ldall mkbin
$(SIZE) -B $(BIN).elf
ccmsis: $(CMSISSRC)
$(CC) $(CFLAGS) $(CMSISSRC)
cstm32_lib: $(STM32_LIBSRC)
$(CC) $(CFLAGS) $(STM32_LIBSRC)
$(AS) $(ASFLAGS) ./stm32_lib/device_support/gcc/startup_stm32f10x_md_vl.S -o startup_stm32f10x_md_vl.o
cc: $(SRC)
$(CC) $(CFLAGS) $(SRC)
ldall:
$(CC) $(OBJ) $(LDFLAGS)
mkbin:
arm-none-eabi-objcopy -Obinary $(BIN).elf $(BIN).bin
.PHONY: clean load
clean:
rm -f $(OBJ) \
$(BIN).map \
$(BIN).elf \
$(BIN).bin
load: all
./stlink/st-flash write /dev/sg0 $(BIN).bin 0x08000000