1# 2# Copyright (C) 2016 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17M3DEBUG ?= m3debug 18 19ifneq ($(CPU),cortexm4) 20 $(error "stm32 cplatform only supports Cortex-M4 CPUs") 21endif 22 23BL_FILE = $(OUT)/bl.unchecked.bin 24OS_FILE = $(OUT)/os.checked.bin 25 26DELIVERABLES += showsizes 27FLAGS += -I. -fno-unwind-tables -fstack-reuse=all -ffunction-sections -fdata-sections 28FLAGS += -Wl,--gc-sections -nostartfiles 29FLAGS += -nostdlib 30 31#platform bootloader 32SRCS_bl += os/platform/$(PLATFORM)/bl.c 33 34#platform runtime 35SRCS_os += os/platform/$(PLATFORM)/crt_$(PLATFORM).c 36 37#platform drivers 38SRCS_os += os/platform/$(PLATFORM)/platform.c \ 39 os/platform/$(PLATFORM)/usart.c \ 40 os/platform/$(PLATFORM)/gpio.c \ 41 os/platform/$(PLATFORM)/pwr.c \ 42 os/platform/$(PLATFORM)/wdt.c \ 43 os/platform/$(PLATFORM)/i2c.c \ 44 os/platform/$(PLATFORM)/exti.c \ 45 os/platform/$(PLATFORM)/syscfg.c \ 46 os/platform/$(PLATFORM)/spi.c \ 47 os/platform/$(PLATFORM)/rtc.c \ 48 os/platform/$(PLATFORM)/mpu.c \ 49 os/platform/$(PLATFORM)/dma.c \ 50 os/platform/$(PLATFORM)/crc.c \ 51 os/platform/$(PLATFORM)/hostIntf.c \ 52 os/platform/$(PLATFORM)/apInt.c \ 53 os/platform/$(PLATFORM)/eeData.c 54 55 56#platform drivers for bootloader 57SRCS_bl += os/platform/$(PLATFORM)/pwr.c os/platform/$(PLATFORM)/gpio.c 58 59#extra deps 60DEPS += $(wildcard os/platform/$(PLATFORM)/inc/plat/*.h) 61DEPS += $(wildcard os/platform/$(PLATFORM)/inc/plat/cmsis/*.h) 62 63#linker script 64LKR_os = os/platform/$(PLATFORM)/lkr/$(CHIP).os.lkr 65LKR_bl = os/platform/$(PLATFORM)/lkr/$(CHIP).bl.lkr 66OSFLAGS_os += -Wl,-T $(LKR_os) 67OSFLAGS_bl += -Wl,-T $(LKR_bl) 68DEPS += $(LKR_os) $(LKR_bl) 69 70#platform flags 71PLATFORM_HAS_HARDWARE_CRC = true 72FLAGS += -DPLATFORM_HW_VER=0 73 74#platform-specific rules 75OBJCOPY_PARAMS = -I elf32-littlearm -O binary 76 77$(OUT)/bl.%.bin : $(OUT)/bl.%.elf 78 $(OBJCOPY) -j .bl -j .data -j .eedata $(OBJCOPY_PARAMS) $< $@ 79 80$(OUT)/os.%.bin : $(OUT)/os.%.elf 81 $(OBJCOPY) -j .data -j .text $(OBJCOPY_PARAMS) $< $@ 82 83showsizes: $(OUT)/os.unchecked.elf 84 os/platform/$(PLATFORM)/misc/showsizes.sh $< 85 86$(info Included STM32 platfrom) 87