- Set-up the project file structure
- Added STM standard peripheral library - Added FreeRTOS - Added FreeRTOS fixes and config - Added main.c Set up makefile structure and implemented makefiles for STM library and the hsb-mrts project Todo: HAL makefiles git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@167 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
ifndef EXECUTABLE
|
||||
|
||||
# Define release version for Adremo firmware here
|
||||
S0_RELEASE_PRODUCT = \""S0\""
|
||||
S0_RELEASE_MAJOR = 0
|
||||
S0_RELEASE_MINOR = 1
|
||||
S0_RELEASE_BRANCH = 0
|
||||
S0_RELEASE_REVISION = 0
|
||||
|
||||
|
||||
# Main objects (not to be added in the library)
|
||||
OBJECTS_MAIN = \
|
||||
main.o
|
||||
|
||||
# Objects to be build for both the simulation and real target
|
||||
OBJECTS_GEN = \
|
||||
\
|
||||
system_stm32f10x.o \
|
||||
sysmem.o \
|
||||
startup_stm32.o \
|
||||
\
|
||||
freeRTOSFixes.o \
|
||||
heap_4.o\
|
||||
list.o \
|
||||
port.o \
|
||||
queue.o \
|
||||
tasks.o \
|
||||
timers.o
|
||||
|
||||
STM32_STDPERIPH_ROOT = ../STM32F10x_StdPeriph_Lib_V3.5.0
|
||||
STM32_STDPERIPH_INC = ../STM32F10x_StdPeriph_Lib_V3.5.0/inc
|
||||
STM32_DEVICE_SUPPORT_DIR = ../STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
|
||||
STM32_CORE_SUPPORT_DIR = ../STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
|
||||
FREERTOS_DIR = ../FreeRTOS/Source/include
|
||||
FREERTOS_PORT_DIR = ../FreeRTOS/Source/portable/GCC/ARM_CM3
|
||||
|
||||
LINKER_SCRIPTS_DIR = linker
|
||||
LINKER_SCRIPT = LinkerScript.ld
|
||||
STARTER_SCRIPT_DIR = startup
|
||||
|
||||
RELEASE_DEFINES = \
|
||||
-DRELEASE_PRODUCT=$(RELEASE_PRODUCT) \
|
||||
-DRELEASE_MAJOR=$(RELEASE_MAJOR) \
|
||||
-DRELEASE_MINOR=$(RELEASE_MINOR) \
|
||||
-DRELEASE_BRANCH=$(RELEASE_BRANCH) \
|
||||
-DRELEASE_REVISION=$(RELEASE_REVISION) \
|
||||
|
||||
INCLUDES = \
|
||||
-Iinc \
|
||||
-I$(STM32_STDPERIPH_INC) \
|
||||
-I$(FREERTOS_DIR) \
|
||||
-I$(FREERTOS_PORT_DIR) \
|
||||
-I$(STM32_DEVICE_SUPPORT_DIR) \
|
||||
-I$(STM32_CORE_SUPPORT_DIR)
|
||||
|
||||
all: release
|
||||
release: export RELEASE_PRODUCT := $(S0_RELEASE_PRODUCT)
|
||||
release: export RELEASE_MAJOR := $(S0_RELEASE_MAJOR)
|
||||
release: export RELEASE_MINOR := $(S0_RELEASE_MINOR)
|
||||
release: export RELEASE_BRANCH := $(S0_RELEASE_BRANCH)
|
||||
release: export RELEASE_REVISION := $(S0_RELEASE_REVISION)
|
||||
release: export OBJ_DIR := obj_release/
|
||||
release: export OBJECTS := $(OBJECTS_GEN)
|
||||
release: export OBJECTS_MAIN := $(OBJECTS_MAIN)
|
||||
release: export CROSS_COMPILE := arm-none-eabi-
|
||||
release: export CCFLAGS := -c -O2 -Wall -g -lc -lm -fno-common -mcpu=cortex-m3 -mthumb $(RELEASE_DEFINES) $(INCLUDES)
|
||||
release: export ASFLAGS := -g -mapcs-32
|
||||
release: export LDFLAGS := -g -nostartfiles -mcpu=cortex-m3 -mthumb -T$(LINKER_SCRIPTS_DIR)/$(LINKER_SCRIPT) -Wl,-Map=hsb_mrts_release.map
|
||||
release: export LDARCHIVES := -L. -L$(STM32_STDPERIPH_ROOT) -lSTM_StdPeriph -lhsb_mrts_release
|
||||
release: export ARFLAGS := ru
|
||||
release: export OBJCOPYFLAGS := -O binary
|
||||
release: export OBJDUMPFLAGS := -x --syms -S
|
||||
release: export EXECUTABLE := hsb_mrts_release.out
|
||||
release: export BINFILE := hsb_mrts_release.bin
|
||||
release: export LIBRARY := libhsb_mrts_release.a
|
||||
release: export LISTFILE := hsb_mrts_release.list
|
||||
release: ;@$(MAKE)
|
||||
|
||||
|
||||
clean:
|
||||
rm -f hsb_mrts_release.out hsb_mrts_release.map hsb_mrts_release.bin hsb_mrts_release.list hsb_mrts_release.map libhsb_mrts_release.a
|
||||
rm -rf obj_release
|
||||
|
||||
flash:
|
||||
st-flash write hsdb_mrts_release.bin 0x8000000
|
||||
|
||||
doc:
|
||||
doxygen 0322-Adremo.dox
|
||||
|
||||
.PHONY: all clean doc flash
|
||||
|
||||
else
|
||||
|
||||
vpath %.c \
|
||||
src \
|
||||
startup \
|
||||
../FreeRTOS/Source \
|
||||
../FreeRTOS/Source/portable/GCC/ARM_CM3 \
|
||||
../FreeRTOS/Source/portable/MemMang \
|
||||
../STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x \
|
||||
../STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
|
||||
|
||||
vpath %.s \
|
||||
startup
|
||||
vpath %.o \
|
||||
obj_release
|
||||
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
LD = $(CROSS_COMPILE)gcc
|
||||
AS = $(CROSS_COMPILE)as
|
||||
AR = $(CROSS_COMPILE)ar
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
|
||||
$(BINFILE): $(EXECUTABLE)
|
||||
$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
|
||||
$(OBJDUMP) $(OBJDUMPFLAGS) $< > $(LISTFILE)
|
||||
cp $@ ../$@
|
||||
|
||||
$(EXECUTABLE): $(OBJ_DIR) $(OBJECTS_MAIN) $(LIBRARY)
|
||||
$(LD) $(LDFLAGS) $(addprefix $(OBJ_DIR)/, $(OBJECTS_MAIN)) $(LDARCHIVES) -o $@
|
||||
|
||||
$(LIBRARY): $(OBJ_DIR) $(OBJECTS) | $(OBJ_DIR)
|
||||
$(AR) $(ARFLAGS) $@ $(addprefix $(OBJ_DIR)/, $(OBJECTS))
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CCFLAGS) $< -o $(OBJ_DIR)/$@
|
||||
|
||||
%.o: %.s
|
||||
$(AS) $(ASFLAGS) $< -o $(OBJ_DIR)/$@
|
||||
|
||||
$(OBJ_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user