initial commit
This commit is contained in:
110
mk/application.mk
Normal file
110
mk/application.mk
Normal file
@@ -0,0 +1,110 @@
|
||||
# Toolchain configuration
|
||||
CROSS_COMPILE := arm-none-eabi-
|
||||
TARGET ?= application
|
||||
|
||||
BUILD_DIR ?= build
|
||||
BIN_DIR := $(BUILD_DIR)/bin
|
||||
|
||||
# SDK stuff
|
||||
SDK_ROOT := lib/amb1_sdk
|
||||
SOC_PATH := $(SDK_ROOT)/soc/realtek/8711b
|
||||
TOOLS_DIR := $(SOC_PATH)/misc/iar_utility/common/tools
|
||||
|
||||
CC := $(CROSS_COMPILE)gcc
|
||||
AR := $(CROSS_COMPILE)ar
|
||||
AS := $(CROSS_COMPILE)as
|
||||
NM := $(CROSS_COMPILE)nm
|
||||
LD := $(CROSS_COMPILE)gcc
|
||||
OBJCOPY := $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP := $(CROSS_COMPILE)objdump
|
||||
|
||||
# OTA config
|
||||
OTA_IDX ?= 1
|
||||
LINKER_SCRIPT := rlx8711B-symbol-v02-img2_xip$(OTA_IDX).ld
|
||||
IMAGE2_OTA := image2_all_ota$(OTA_IDX).bin
|
||||
|
||||
# Build info
|
||||
BUILD_INFO ?= include/build_info.h
|
||||
|
||||
# inc and src
|
||||
include $(MKFILES)/includes.mk
|
||||
include $(MKFILES)/sources.mk
|
||||
|
||||
# compiler flags
|
||||
COMMON_FLAGS := \
|
||||
-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 \
|
||||
-Os -g2 -w
|
||||
|
||||
CFLAGS := $(COMMON_FLAGS) \
|
||||
-DM4 -DCONFIG_PLATFORM_8711B \
|
||||
-ffunction-sections -fdata-sections -fomit-frame-pointer \
|
||||
-fno-common -fno-short-enums -std=gnu99 -fsigned-char \
|
||||
-Wno-pointer-sign -Wno-implicit-function-declaration \
|
||||
-Wno-incompatible-pointer-types -Wno-int-conversion
|
||||
|
||||
LFLAGS := $(COMMON_FLAGS) \
|
||||
--specs=nano.specs -nostartfiles \
|
||||
-Wl,--gc-sections -Wl,--entry=Reset_Handler \
|
||||
-Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning \
|
||||
-Wl,--wrap=malloc -Wl,--wrap=free -Wl,--wrap=realloc \
|
||||
-Wl,--wrap=rom_psk_CalcGTK -Wl,--wrap=rom_psk_CalcPTK \
|
||||
-Wl,--wrap=CalcMIC -Wl,--wrap=CheckMIC \
|
||||
-Wl,--wrap=aes_80211_encrypt -Wl,--wrap=aes_80211_decrypt \
|
||||
-Wl,--wrap=DecGTK
|
||||
|
||||
# libs
|
||||
LIB_DIR := $(SOC_PATH)/misc/bsp/lib/common/GCC
|
||||
LIBS := $(addprefix -l_,platform wlan eap http wps p2p rtlstd) \
|
||||
$(addprefix -l,m c nosys gcc)
|
||||
LIBFLAGS := -L$(LIB_DIR) $(LIBS)
|
||||
|
||||
# obj files - handle both RAM and DRAM
|
||||
OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRC_C) $(DRAM_C))
|
||||
DEPS := $(OBJS:.o=.d)
|
||||
|
||||
.PHONY: all build_info clean post_process directory_structure
|
||||
|
||||
all: $(BIN_DIR)/$(TARGET).axf
|
||||
|
||||
$(BIN_DIR)/$(TARGET).axf: $(OBJS) $(BOOTLOADER) | $(BIN_DIR)
|
||||
$(LD) $(LFLAGS) -o $@ $(OBJS) $(BOOTLOADER) $(LIBFLAGS) -T./$(LINKER_SCRIPT)
|
||||
$(OBJDUMP) -d $@ > $(BIN_DIR)/$(TARGET).asm
|
||||
$(NM) $@ | sort > $(BIN_DIR)/$(TARGET).nmap
|
||||
$(MAKE) -f $(firstword $(MAKEFILE_LIST)) post_process
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c $(BUILD_INFO) | directory_structure
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -MMD -MP -c $< -o $@
|
||||
$(if $(findstring $(DRAM_C),$<),$(OBJCOPY) --prefix-alloc-sections .sdram $@)
|
||||
|
||||
# bootloader
|
||||
$(BOOTLOADER): | directory_structure
|
||||
@mkdir -p $(dir $@)
|
||||
cp $(SOC_PATH)/misc/bsp/image/boot_all.bin $(BUILD_DIR)/boot/boot_all.bin
|
||||
chmod 777 $(BUILD_DIR)/boot/boot_all.bin
|
||||
$(OBJCOPY) -I binary -O elf32-littlearm -B arm \
|
||||
$(BUILD_DIR)/boot/boot_all.bin $@
|
||||
|
||||
.PHONY: FORCE
|
||||
|
||||
# ota magic
|
||||
post_process: $(BIN_DIR)/$(TARGET).axf
|
||||
@echo "=== Processing OTA Image ==="
|
||||
@scripts/process_ota.sh \
|
||||
--axf $(BIN_DIR)/$(TARGET).axf \
|
||||
--bin-dir $(BIN_DIR) \
|
||||
--objcopy $(OBJCOPY) \
|
||||
--ota-idx $(OTA_IDX) \
|
||||
--tools-dir $(TOOLS_DIR)
|
||||
|
||||
directory_structure:
|
||||
@mkdir -p $(BIN_DIR) $(dir $(OBJS))
|
||||
|
||||
build_info:
|
||||
@echo "Generating build information..."
|
||||
@scripts/generate_build_info.sh $(CC) "$(CFLAGS)" > $(BUILD_INFO)
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
|
||||
-include $(DEPS)
|
||||
Reference in New Issue
Block a user