реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> FAQ по Eclipse+Make+GCC+CDT, обобщение полезной информации
Aaron
сообщение Jan 15 2014, 07:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Топик содержит ответы на часто задаваемые вопросы (FAQ) по использованию Eclipse, Make, GCC, CDT.
Свои идеи по добавлению ценной информации в FAQ присылайте в личку мне или модераторам ветки форума.

Настройка discovery в Eclipse с учётом дефайнов из makefile
Статические библиотеки для STM32Fx: пример создания и использования. Существенно экономит время при частом запуске build.
GCC + виртуальные функции = undefined reference to...

Сообщение отредактировал IgorKossak - Jan 21 2014, 16:18
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 15 2014, 08:15
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Поддерживаю. Предлагаю вам дописать "пожелания по добавлению присылать в личку" и закрыть ветку. При необходимости будете снова открывать, дописывать и закрывать. Иначе цель ветки утонет в простыне обсуждений.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Aaron
сообщение Jan 15 2014, 10:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Хорошо. Топик закрываю. Жаль, что нет сворачивающихся спойлеров. Буду тогда отдельными сообщениями дописывать FAQ, а в шапке давать ссылки на них, чтобы шапка не перегружалась сильно.

Статические библиотеки для STM32Fx. Пример создания и использования. Существенно экономит время при частом запуске build.
CODE
##########################
# прописывается в 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)
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 01:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016