Rev 5 | Rev 8 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 5 | Rev 6 | ||
|---|---|---|---|
| Line 71... | Line 71... | ||
| 71 | PREFIX = arm-none-eabi- |
71 | PREFIX = arm-none-eabi- |
| 72 | # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) |
72 | # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) |
| 73 | # either it can be added to the PATH environment variable. |
73 | # either it can be added to the PATH environment variable. |
| 74 | ifdef GCC_PATH |
74 | ifdef GCC_PATH |
| 75 | CC = $(GCC_PATH)/$(PREFIX)gcc |
75 | CC = $(GCC_PATH)/$(PREFIX)gcc |
| - | 76 | CXX = $(GCC_PATH)/$(PREFIX)g++ |
|
| 76 | AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp |
77 | AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp |
| 77 | CP = $(GCC_PATH)/$(PREFIX)objcopy |
78 | CP = $(GCC_PATH)/$(PREFIX)objcopy |
| 78 | SZ = $(GCC_PATH)/$(PREFIX)size |
79 | SZ = $(GCC_PATH)/$(PREFIX)size |
| 79 | else |
80 | else |
| 80 | CC = $(PREFIX)gcc |
81 | CC = $(PREFIX)gcc |
| - | 82 | CXX = $(PREFIX)g++ |
|
| 81 | AS = $(PREFIX)gcc -x assembler-with-cpp |
83 | AS = $(PREFIX)gcc -x assembler-with-cpp |
| 82 | CP = $(PREFIX)objcopy |
84 | CP = $(PREFIX)objcopy |
| 83 | SZ = $(PREFIX)size |
85 | SZ = $(PREFIX)size |
| 84 | endif |
86 | endif |
| 85 | HEX = $(CP) -O ihex |
87 | HEX = $(CP) -O ihex |
| Line 132... | Line 134... | ||
| 132 | # OLED library |
134 | # OLED library |
| 133 | HAL = stm32_hal |
135 | HAL = stm32_hal |
| 134 | LIBSSD1306 = ../libSSD1306 |
136 | LIBSSD1306 = ../libSSD1306 |
| 135 | include $(LIBSSD1306)/libSSD1306.mk |
137 | include $(LIBSSD1306)/libSSD1306.mk |
| 136 | 138 | ||
| - | 139 | # New OLED library |
|
| - | 140 | LIBOLED = ../libOLED |
|
| - | 141 | include $(LIBOLED)/libOLED.mk |
|
| - | 142 | ||
| - | 143 | ||
| 137 | C_SOURCES += src/nmea.c |
144 | C_SOURCES += src/nmea.c |
| - | 145 | CPP_SOURCES += src/display.cpp |
|
| - | 146 | ||
| 138 | 147 | ||
| 139 | 148 | ||
| 140 | 149 | ||
| 141 | # compile gcc flags |
150 | # compile gcc flags |
| 142 | ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
151 | ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
| Line 146... | Line 155... | ||
| 146 | ifeq ($(DEBUG), 1) |
155 | ifeq ($(DEBUG), 1) |
| 147 | CFLAGS += -g -gdwarf-2 |
156 | CFLAGS += -g -gdwarf-2 |
| 148 | endif |
157 | endif |
| 149 | 158 | ||
| 150 | 159 | ||
| - | 160 | ||
| 151 | # Generate dependency information |
161 | # Generate dependency information |
| 152 | CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" |
162 | CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" |
| 153 | 163 | ||
| 154 | 164 | ||
| - | 165 | CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions |
|
| - | 166 | ||
| 155 | ####################################### |
167 | ####################################### |
| 156 | # LDFLAGS |
168 | # LDFLAGS |
| 157 | ####################################### |
169 | ####################################### |
| 158 | # link script |
170 | # link script |
| 159 | LDSCRIPT = STM32F103RBTx_FLASH.ld |
171 | LDSCRIPT = STM32F103RBTx_FLASH.ld |
| 160 | 172 | ||
| 161 | # libraries |
173 | # libraries |
| 162 | LIBS = -lc -lm -lnosys |
174 | LIBS = -lc -lm -lnosys -lgcc |
| 163 | LIBDIR = |
175 | LIBDIR = |
| 164 | LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections |
176 | LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections |
| 165 | 177 | ||
| 166 | # default action: build all |
178 | # default action: build all |
| 167 | all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |
179 | all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |
| Line 171... | Line 183... | ||
| 171 | # build the application |
183 | # build the application |
| 172 | ####################################### |
184 | ####################################### |
| 173 | # list of objects |
185 | # list of objects |
| 174 | OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) |
186 | OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) |
| 175 | vpath %.c $(sort $(dir $(C_SOURCES))) |
187 | vpath %.c $(sort $(dir $(C_SOURCES))) |
| - | 188 | ||
| - | 189 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SOURCES:.cpp=.o))) |
|
| - | 190 | vpath %.cpp $(sort $(dir $(CPP_SOURCES))) |
|
| - | 191 | ||
| 176 | # list of ASM program objects |
192 | # list of ASM program objects |
| 177 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) |
193 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) |
| 178 | vpath %.s $(sort $(dir $(ASM_SOURCES))) |
194 | vpath %.s $(sort $(dir $(ASM_SOURCES))) |
| 179 | 195 | ||
| 180 | $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) |
196 | $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) |
| 181 | $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
197 | $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
| 182 | 198 | ||
| - | 199 | $(BUILD_DIR)/%.o: %.cpp Makefile | $(BUILD_DIR) |
|
| - | 200 | $(CXX) -c $(CXXFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
|
| - | 201 | ||
| 183 | $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) |
202 | $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) |
| 184 | $(AS) -c $(CFLAGS) $< -o $@ |
203 | $(AS) -c $(CFLAGS) $< -o $@ |
| 185 | 204 | ||
| 186 | $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile |
205 | $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile |
| 187 | $(CC) $(OBJECTS) $(LDFLAGS) -o $@ |
206 | $(CC) $(OBJECTS) $(LDFLAGS) -o $@ |