Aaron 1 15 января, 2014 Опубликовано 15 января, 2014 (изменено) · Жалоба Топик содержит ответы на часто задаваемые вопросы (FAQ) по использованию Eclipse, Make, GCC, CDT. Свои идеи по добавлению ценной информации в FAQ присылайте в личку мне или модераторам ветки форума. Настройка discovery в Eclipse с учётом дефайнов из makefile Статические библиотеки для STM32Fx: пример создания и использования. Существенно экономит время при частом запуске build. GCC + виртуальные функции = undefined reference to... Изменено 21 января, 2014 пользователем IgorKossak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 135 15 января, 2014 Опубликовано 15 января, 2014 · Жалоба Поддерживаю. Предлагаю вам дописать "пожелания по добавлению присылать в личку" и закрыть ветку. При необходимости будете снова открывать, дописывать и закрывать. Иначе цель ветки утонет в простыне обсуждений. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 15 января, 2014 Опубликовано 15 января, 2014 · Жалоба Хорошо. Топик закрываю. Жаль, что нет сворачивающихся спойлеров. Буду тогда отдельными сообщениями дописывать FAQ, а в шапке давать ссылки на них, чтобы шапка не перегружалась сильно. Статические библиотеки для STM32Fx. Пример создания и использования. Существенно экономит время при частом запуске build. ########################## # прописывается в makefile ########################## AR = arm-none-eabi-ar # STM32F10x_StdPeriph_Driver DEFS += -DUSE_STDPERIPH_DRIVER #uncomment to use this library STDPERIPHLIB = StdPeriphLib STDPERIPH_LIB = $(LIBDIR)/lib$(STDPERIPHLIB).a # need as path/name to create static library STDPERIPH_DRIVER_DIR := ./STM32F10x_StdPeriph_Driver STDPERIPH_DRIVER := $(STDPERIPH_DRIVER_DIR) STDPERIPH_DRIVER += $(STDPERIPH_DRIVER_DIR)/inc STDPERIPH_DRIVER += $(STDPERIPH_DRIVER_DIR)/src # static library compiling paths & objects STDPERIPH_LIB_DIR := $(STDPERIPH_DRIVER) STDPERIPH_LIB_DIR += ./CMSIS LIB_INCS := $(patsubst %, -I "%", $(STDPERIPH_LIB_DIR)) STDPERIPH_OBJS += $(wildcard $(addsuffix /*.c, $(STDPERIPH_DRIVER))) STDPERIPH_SRC_FILES := $(STDPERIPH_OBJS) STDPERIPH_OBJS := $(notdir $(STDPERIPH_OBJS)) STDPERIPH_OBJS := $(STDPERIPH_OBJS:.c=.o) STDPERIPH_OBJS := $(patsubst %, $(OBJDIR)/%, $(STDPERIPH_OBJS)) CPU_FLAGS := -mcpu=$(MCU) CPU_FLAGS += -mthumb CPU_FLAGS += $(FPU) # общие ключи для бинутилит AS, CC, CXX, AR FLAGS = $(CPU_FLAGS) FLAGS += $(DEFS) FLAGS += -Wa,-adhlns=$(addprefix $(LSTDIR)/, $(notdir $(addsuffix .lst, $(basename $<)))) # общие ключи для сборки как проекта, так и статических библиотек COMMON_CFLAGS = $(OPTIMIZE) ifneq (,$(filter-out discovery defines,$(MAKECMDGOALS))) COMMON_CFLAGS += -MD endif COMMON_CFLAGS += -std=gnu99 COMMON_CFLAGS += -g COMMON_CFLAGS += -pipe COMMON_CFLAGS += -fstack-usage COMMON_CFLAGS += -ffunction-sections -fdata-sections COMMON_CFLAGS += -Wall -Wextra COMMON_CFLAGS += -Wimplicit -Wcast-align -Wpointer-arith -Wredundant-decls COMMON_CFLAGS += -Wshadow -Wcast-qual -Wcast-align -Wnested-externs #COMMON_CFLAGS += -pedantic # CMSIS core uses GCC extensions # флаги для сборки библиотеки STM32Fx_StdPeriphLib LIB_CFLAGS = $(FLAGS) LIB_CFLAGS += $(LIB_INCS) LIB_CFLAGS += $(COMMON_CFLAGS) LDFLAGS += -L$(LIBDIR) # where LD need to search libraries LDFLAGS += -l$(STDPERIPHLIB) $(STDPERIPH_LIB): @echo --- need to create $@... $(MAKE) buildSTDPeriphLib buildSTDPeriphLib: $(STDPERIPH_OBJS) @echo --- creating static library $(STDPERIPH_LIB)... $(AR) rcs $(STDPERIPH_LIB) $(STDPERIPH_OBJS) @echo ...ok all: $(STDPERIPH_LIB) $(MAKE) start $(MAKE) $(ELF) $(MAKE) $(BIN) $(MAKE) $(LSS) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться