diff options
Diffstat (limited to 'firmware/os/platform/stm32/stm32.mk')
-rw-r--r-- | firmware/os/platform/stm32/stm32.mk | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/firmware/os/platform/stm32/stm32.mk b/firmware/os/platform/stm32/stm32.mk new file mode 100644 index 00000000..103ca3df --- /dev/null +++ b/firmware/os/platform/stm32/stm32.mk @@ -0,0 +1,86 @@ +# +# 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_os += -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 .blrodata -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) |