make reorganized
This commit is contained in:
44
config/make/rules.mk
Normal file
44
config/make/rules.mk
Normal file
@@ -0,0 +1,44 @@
|
||||
.PHONY: clean distclean doc test
|
||||
|
||||
ROOT_DIR := $(shell pwd | sed "s/\/source//g")
|
||||
|
||||
include $(ROOT_DIR)/config/make/tools.mk
|
||||
|
||||
ifeq ($(BOARD), stm32f4-discovery)
|
||||
include $(ROOT_DIR)/config/make/stm32f4xx.mk
|
||||
endif
|
||||
|
||||
OS_LIB = kosmos-$(ARCH)-$(BOARD)$(DBG_EXT)
|
||||
LIBS += $(OS_LIB)
|
||||
|
||||
INCLUDES += \
|
||||
$(SRC_DIR)/firmware
|
||||
|
||||
ifeq ($(DEBUG),y)
|
||||
DBG_DIR = debug
|
||||
else
|
||||
DBG_DIR = release
|
||||
endif
|
||||
OBJ_DIR := $(ROOT_DIR)/release/object/$(ARCH)/$(DBG_DIR)
|
||||
EXE_DIR := $(ROOT_DIR)/release/execute/$(ARCH)/$(DBG_DIR)
|
||||
MAP_DIR := $(ROOT_DIR)/release/map/$(ARCH)/$(DBG_DIR)
|
||||
SIZE_DIR := $(ROOT_DIR)/release/size/$(ARCH)/$(DBG_DIR)
|
||||
TEST_OBJ_DIR := $(ROOT_DIR)/test/object
|
||||
TEST_EXE_DIR := $(ROOT_DIR)/test/execute/
|
||||
|
||||
ELF_EXT = .elf
|
||||
BIN_EXT = .bin
|
||||
HEX_EXT = .hex
|
||||
LIB_EXT = .a
|
||||
SIZE_EXT = .size
|
||||
TEST_EXT =
|
||||
MAP_EXT = .map
|
||||
|
||||
define makedep
|
||||
$(CC) -MM \
|
||||
-MF $3 \
|
||||
-MP \
|
||||
-MT $2 \
|
||||
$4 \
|
||||
$1
|
||||
endef
|
87
config/make/stm32f4xx.mk
Normal file
87
config/make/stm32f4xx.mk
Normal file
@@ -0,0 +1,87 @@
|
||||
ARCH ?= arm
|
||||
CPU ?= stm32f4xx
|
||||
ifeq ($(CPU),stm32f4xx)
|
||||
C_FLAGS += -DARCH_STM32F4XX
|
||||
endif
|
||||
ifeq ($(BOARD), stm32f4-discovery)
|
||||
C_FLAGS += -DBOARD_STM32F4_DISCOVERY
|
||||
endif
|
||||
CROSS_COMPILE ?= arm-none-eabi-
|
||||
|
||||
INCLUDES += \
|
||||
/opt/arm-2011.09/arm-none-eabi/include \
|
||||
/opt/arm-2011.09/lib/gcc/arm-none-eabi/4.6.1/include
|
||||
|
||||
ifeq ($(DEBUG),y)
|
||||
OPTIM = g
|
||||
GEN_FLAGS += -g3
|
||||
DBG_EXT = -dbg
|
||||
else
|
||||
OPTIM = s
|
||||
DBG_EXT =
|
||||
endif
|
||||
|
||||
GEN_FLAGS := \
|
||||
-mcpu=cortex-m4 \
|
||||
-mthumb \
|
||||
-mfloat-abi=hard \
|
||||
-mfpu=fpv4-sp-d16 \
|
||||
-O$(OPTIM) \
|
||||
-fmessage-length=0 \
|
||||
-fsigned-char \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-ffreestanding \
|
||||
-fno-move-loop-invariants \
|
||||
-Werror \
|
||||
-Wunused \
|
||||
-Wuninitialized \
|
||||
-Wall \
|
||||
-Wextra \
|
||||
-Wmissing-declarations \
|
||||
-Wconversion \
|
||||
-Wpointer-arith \
|
||||
-Wpadded \
|
||||
-Wshadow \
|
||||
-Wlogical-op \
|
||||
-Waggregate-return \
|
||||
-Wfloat-equal
|
||||
|
||||
C_FLAGS += \
|
||||
-DDEBUG \
|
||||
-DUSE_FULL_ASSERT \
|
||||
-DTRACE \
|
||||
-DOS_USE_TRACE_SEMIHOSTING_DEBUG \
|
||||
-DSTM32F407xx \
|
||||
-DUSE_HAL_DRIVER \
|
||||
-DHSE_VALUE=8000000 \
|
||||
$(addprefix -I, $(INCLUDES)) \
|
||||
-std=gnu11 \
|
||||
-Wmissing-prototypes \
|
||||
-Wstrict-prototypes \
|
||||
-Wbad-function-cast \
|
||||
-Wno-bad-function-cast \
|
||||
-Wno-conversion \
|
||||
-Wno-sign-conversion \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-sign-compare \
|
||||
-Wno-missing-prototypes \
|
||||
-Wno-missing-declarations
|
||||
|
||||
L_FLAGS := \
|
||||
-T mem.ld \
|
||||
-T libs.ld \
|
||||
-T sections.ld \
|
||||
-nostartfiles \
|
||||
-Xlinker --gc-sections \
|
||||
-L"config/linker" \
|
||||
--specs=nano.specs
|
||||
|
||||
AS_FLAGS := -mapcs-32 -g
|
||||
AR_FLAGS := rcs
|
||||
|
||||
OOCD_IMAGE=$(BIN_FILE)
|
||||
OOCD_CFG_FILE=$(EXE_DIR)/openocd.cfg
|
||||
|
||||
PRE_PROGRAM = echo "telnet_port 4444\ninit\nreset halt\nflash write_image erase $(OOCD_IMAGE) 0x08000000 bin\nreset run\n shutdown\n" > $(OOCD_CFG_FILE)
|
||||
PROGRAM = openocd -f /usr/share/openocd/scripts/board/stm32f4discovery.cfg -f $(OOCD_CFG_FILE)
|
13
config/make/tools.mk
Normal file
13
config/make/tools.mk
Normal file
@@ -0,0 +1,13 @@
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
CXX = $(CROSS_COMPILE)g++
|
||||
AR = $(CROSS_COMPILE)ar
|
||||
SIZE = $(CROSS_COMPILE)size
|
||||
NM = $(CROSS_COMPILE)nm
|
||||
RANLIB = $(CROSS_COMPILE)ranlib
|
||||
OBJCOPY=$(CROSS_COMPILE)objcopy
|
||||
SED = sed
|
||||
RM = rm -f
|
||||
MV = mv
|
||||
CP = cp
|
||||
MKDIR = mkdir -p
|
||||
CPPCHECK = cppcheck
|
Reference in New Issue
Block a user