87 lines
2.5 KiB
Makefile
87 lines
2.5 KiB
Makefile
#
|
|
# Copyright (C) 2016 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
M3DEBUG ?= m3debug
|
|
|
|
ifneq ($(CPU),cortexm4)
|
|
$(error "stm32 cplatform only supports Cortex-M4 CPUs")
|
|
endif
|
|
|
|
BL_FILE = $(OUT)/bl.unchecked.bin
|
|
OS_FILE = $(OUT)/os.checked.bin
|
|
|
|
DELIVERABLES += showsizes
|
|
FLAGS += -I. -fno-unwind-tables -fstack-reuse=all -ffunction-sections -fdata-sections
|
|
FLAGS += -Wl,--gc-sections -nostartfiles
|
|
FLAGS += -nostdlib
|
|
|
|
#platform bootloader
|
|
SRCS_bl += os/platform/$(PLATFORM)/bl.c
|
|
|
|
#platform runtime
|
|
SRCS_os += os/platform/$(PLATFORM)/crt_$(PLATFORM).c
|
|
|
|
#platform drivers
|
|
SRCS_os += os/platform/$(PLATFORM)/platform.c \
|
|
os/platform/$(PLATFORM)/usart.c \
|
|
os/platform/$(PLATFORM)/gpio.c \
|
|
os/platform/$(PLATFORM)/pwr.c \
|
|
os/platform/$(PLATFORM)/wdt.c \
|
|
os/platform/$(PLATFORM)/i2c.c \
|
|
os/platform/$(PLATFORM)/exti.c \
|
|
os/platform/$(PLATFORM)/syscfg.c \
|
|
os/platform/$(PLATFORM)/spi.c \
|
|
os/platform/$(PLATFORM)/rtc.c \
|
|
os/platform/$(PLATFORM)/mpu.c \
|
|
os/platform/$(PLATFORM)/dma.c \
|
|
os/platform/$(PLATFORM)/crc.c \
|
|
os/platform/$(PLATFORM)/hostIntf.c \
|
|
os/platform/$(PLATFORM)/apInt.c \
|
|
os/platform/$(PLATFORM)/eeData.c
|
|
|
|
|
|
#platform drivers for bootloader
|
|
SRCS_bl += os/platform/$(PLATFORM)/pwr.c os/platform/$(PLATFORM)/gpio.c
|
|
|
|
#extra deps
|
|
DEPS += $(wildcard os/platform/$(PLATFORM)/inc/plat/*.h)
|
|
DEPS += $(wildcard os/platform/$(PLATFORM)/inc/plat/cmsis/*.h)
|
|
|
|
#linker script
|
|
LKR_os = os/platform/$(PLATFORM)/lkr/$(CHIP).os.lkr
|
|
LKR_bl = os/platform/$(PLATFORM)/lkr/$(CHIP).bl.lkr
|
|
OSFLAGS_os += -Wl,-T $(LKR_os)
|
|
OSFLAGS_bl += -Wl,-T $(LKR_bl)
|
|
DEPS += $(LKR_os) $(LKR_bl)
|
|
|
|
#platform flags
|
|
PLATFORM_HAS_HARDWARE_CRC = true
|
|
FLAGS += -DPLATFORM_HW_VER=0
|
|
|
|
#platform-specific rules
|
|
OBJCOPY_PARAMS = -I elf32-littlearm -O binary
|
|
|
|
$(OUT)/bl.%.bin : $(OUT)/bl.%.elf
|
|
$(OBJCOPY) -j .bl -j .data -j .eedata $(OBJCOPY_PARAMS) $< $@
|
|
|
|
$(OUT)/os.%.bin : $(OUT)/os.%.elf
|
|
$(OBJCOPY) -j .data -j .text $(OBJCOPY_PARAMS) $< $@
|
|
|
|
showsizes: $(OUT)/os.unchecked.elf
|
|
os/platform/$(PLATFORM)/misc/showsizes.sh $<
|
|
|
|
$(info Included STM32 platfrom)
|