| # |
| # 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) |