blob: 30646bd636a3f76720b506e9cfad6157f346ede1 [file] [log] [blame]
################################################################################
#
# @file makefile
#
# @brief HID remote controller
#
# Copyright (C) Atmosic 2021-2023
#
################################################################################
include ../../user/common.mk
DEBUG := 1
PROFILES := OTAPS DISS BASS HOGPD
FRAMEWORK_MODULES := \
app_batt \
app_bass \
app_diss \
atm_adv \
atm_adv_param \
atm_asm \
atm_common \
atm_debug \
atm_gap \
atm_log \
ble_bass \
ble_diss \
ble_gap \
ble_gap_sec \
ble_hogpd \
ble_otaps \
DRIVERS := \
atm_ble \
atm_gpio \
atm_pm \
atm_vkey \
batt_model \
gadc \
interrupt \
keyboard \
led_blink \
pdm \
sw_event \
sw_timer \
trng \
OVERLAY_FILE ?= pinmap_$(BOARD)_overlay.h
CFLAGS += -DPINMAP_$(BOARD)_OVERLAY="$(OVERLAY_FILE)"
ifdef FLASHROM
UU_TEST := HID_remote
endif
ifdef CFG_ATVRC
CFG_ATVRC_FULL_FEAT := 1
LPC_RCOS := 1
FORCE_LPC_RCOS := 1
BOARD := m2231
endif
ifdef CFG_ATVRC_BF
CFG_ATVRC_FULL_FEAT := 1
BOARD := m3231
PV_HARV_EN := 1
endif
ifdef CFG_ATVRC_FULL_FEAT
CFG_RC_IR := 1
CFG_ATVRC_ATT := 1
ifndef CFG_ATVRC_ATM_AUDIO
CFG_ATVRC_AUDIO := 1
endif
CFG_ATVRC_CUSTOM := 1
CFG_ATVRC_UNI_IR := 1
CFG_ATVRC_NEC_IR_OVERRIDE := 1
CFG_ATVRC_WAKEUP := 1
ifdef USE_LIB
REF_DESIGN_RCU_DIR := ../../../../..
else
REF_DESIGN_RCU_DIR := ../../../../../contrib/refDesignRcu
endif
SRC_ATVRC := src/atvrc
INCLUDES += $(REF_DESIGN_RCU_DIR) $(SRC_ATVRC)
CFLAGS += -DCFG_ATM_SDK -DCFG_VKEY_BUF -DCFG_OTA_SPEEDUP -DCFG_GAP_MAX_LL_MTU=247
endif
ifdef CFG_ATVRC_ATT
FRAMEWORK_MODULES += atm_prfs ble_atmprfs
CFLAGS += -DCFG_ATVRC_ATT
ATVRC_C_SRCS += \
$(REF_DESIGN_RCU_DIR)/vendor/827x_ble_remote/app_att.c \
$(SRC_ATVRC)/bridge_att.c \
$(SRC_ATVRC)/bridge_timer.c \
endif
ifdef CFG_ATVRC_UNI_IR
CFLAGS += -DCFG_ATVRC_UNI_IR
C_SRCS += $(DRIVER_DIR)/ir/uni_ir.c
ATVRC_C_SRCS += \
$(REF_DESIGN_RCU_DIR)/vendor/827x_ble_remote/app_ir.c \
$(SRC_ATVRC)/bridge_ir.c \
endif
ifdef CFG_ATVRC_CUSTOM
CFLAGS += -DCFG_ATVRC_CUSTOM -DCFG_FLEX_VKEY_MAP
ATVRC_C_SRCS += $(SRC_ATVRC)/atvrc_custom.c
flash_nvds.data += C1-ATVRC_CUSTOM_DATA/g10
endif
ifdef CFG_ATVRC_NEC_IR_OVERRIDE
CFLAGS += -DCFG_NEC_IR_OVERRIDE -DIR_DATA_CONST=
flash_nvds.data += C2-ATVRC_NEC_IR_OVERRIDE/default
endif
ifdef CFG_ATVRC_WAKEUP
CFLAGS += -DCFG_ATVRC_WAKEUP
endif
ifdef CFG_ATVRC_FIND_ME
DRIVERS += buzzer
CFLAGS += -DCFG_ATVRC_FIND_ME
ATVRC_C_SRCS += \
$(REF_DESIGN_RCU_DIR)/vendor/827x_ble_remote/app_find_me/app_fms.c \
$(REF_DESIGN_RCU_DIR)/vendor/827x_ble_remote/app_find_me/app_imc.c \
$(SRC_ATVRC)/bridge_fms.c \
endif
ifneq (,$(filter -DAUTO_TEST,$(CFLAGS)))
CFLAGS += -DCFG_PDM_LOCAL_TEST -DSW_TIMER_ID_MAX=13
else
ifdef CFG_ATVRC_ATT
CFLAGS += -DSW_TIMER_ID_MAX=15
else
CFLAGS += -DSW_TIMER_ID_MAX=12
endif
endif
SRC_TOP = src
SRC_NONBT = src/non_bt
SRC_BT = src/bt
# Voice setting
# HID_MSBC: mSBC over HID
# HID_ADPCM: ADPCM over HID
# otherwise: ADPCM over ATVV
PDM_ADPCM := 1
ifeq ($(CFG_VOICE),HID_MSBC)
CFLAGS += -DCFG_VOHID -DCFG_PDM_MSBC -DCFG_PDM_INTP_TABLE_ALLOC
C_SRCS += $(SRC_BT)/rc_hidau.c $(SRC_NONBT)/sbc_enc_wrapper.c
override PDM_ADPCM :=
ifdef FLASHROM
UU_TEST += sbc_enc_wrapper rc_hidau
endif
else ifeq ($(CFG_VOICE),HID_ADPCM)
CFLAGS += -DCFG_VOHID
C_SRCS += $(SRC_BT)/rc_hidau.c
ifdef FLASHROM
UU_TEST += rc_hidau
endif
else # CFG_VOICE
ifdef CFG_ATVRC_AUDIO
CFLAGS += -DCFG_ATVRC_AUDIO
ATVRC_C_SRCS += \
$(REF_DESIGN_RCU_DIR)/application/audio/gl_audio.c \
$(SRC_ATVRC)/bridge_audio.c \
$(SRC_BT)/rc_atvv.c \
else
C_SRCS += $(SRC_BT)/rc_atvv.c
FRAMEWORK_MODULES += ble_atvvs
PROFILES += ATVVS
endif
ifndef CFG_ATVV_VER_004
CFLAGS += -DCFG_ATVV_VER_100
endif
ifdef CFG_ATVV_ASST_MODEL
CFLAGS += -DCFG_ATVV_ASST_MODEL=$(CFG_ATVV_ASST_MODEL)
endif
ifdef CFG_RF_TEST
CFLAGS += -DCFG_RF_TEST
endif
ifdef FLASHROM
UU_TEST += rc_atvv
endif
endif # CFG_VOICE
ifdef FLASHROM
ifndef CFG_PDM_INTP_DISABLE
UU_TEST += pdm_intp
endif
ifdef PDM_ADPCM
UU_TEST += adpcm_enc
endif
endif # FLASHROM
# power plan:
# power_coin_none.mk
# power_cone_pv.mk
# power_hsc_3v3_pv.mk
# power_hsc_3v8_pv.mk
CFG_RC_POWER_FILE ?= power_coin_none.mk
ifeq ($(wildcard $(CFG_RC_POWER_FILE)),)
$(error $(CFG_RC_POWER_FILE) doesn't exist. Use one of [\
$(wildcard power*.mk)])
endif
include $(CFG_RC_POWER_FILE)
ifneq (,$(filter m2202 m3202,$(BOARD)))
VKEY_MAP_CFG := x202
FLASH_SIZE = 0x80000
# Keyboard, IR, PDM and LED
CFLAGS += \
-DLED_UART_MUX \
else ifneq (,$(filter m2221 m3221,$(BOARD)))
VKEY_MAP_CFG := default
ifndef FLASHROM
FLASH_SIZE = 0x40000
endif
else ifneq (,$(filter m2231 m3231,$(BOARD)))
VKEY_MAP_CFG := $(BOARD)
ifndef FLASHROM
ifdef PUYA_2MB
FLASH_SIZE = 0x20000
NVDS_SIZE = 4096
else
FLASH_SIZE = 0x40000
endif
endif
OTA_DISCON_BEFORE_REBOOT := 1
CFLAGS += \
-DCFG_ATVRC_MMI \
-DNUM_LEDS=2 \
else ifneq (,$(filter x2xx_emu,$(BOARD)))
VKEY_MAP_CFG := default
ifndef FLASHROM
FLASH_SIZE = 0x40000
endif
else
$(error "usage: make $(MAKECMDGOALS) \
BOARD=<m2202|m3202|m2221|m3221|m2231|m3231>")
endif
CFLAGS += -DVKEY_MAP_FILE=rc_mmi_vkey_$(VKEY_MAP_CFG).h
ifdef PV_HARV_EN
$(error "PV_HARV_EN deprecated. Please use CFG_RC_POWER_FILE)
endif
ifdef CFG_RC_IR
DRIVERS += ir timer
C_SRCS += $(DRIVER_DIR)/ir/nec_ir.c $(DRIVER_DIR)/ir/ir_ctl.c
ifdef CFG_ATVRC_UNI_IR
ATVRC_C_SRCS += $(SRC_NONBT)/rc_ir.c
else
C_SRCS += $(SRC_NONBT)/rc_ir.c
endif
ifdef FLASHROM
UU_TEST += rc_ir nec_ir ir_ctl
endif
# disable ATM_SLWTIMER, isr conflicts with pdm
CFLAGS += \
-DCFG_RC_IR \
-DCFG_DIS_ATM_SLWTIMER \
-DATM_DUAL_TIMER_OVERRIDE_PRI=IRQ_PRI_RT \
ifdef CFG_RC_IR_ON_HID
CFLAGS += -DCFG_RC_IR_ON_HID
endif # CFG_RC_IR_ON_HID
endif
ifdef CFG_ATVRC_FULL_FEAT
EXCLUDE_APP_LIB_C_SRCS := $(ATVRC_C_SRCS)
endif
# Keyboard
CFLAGS += -DCFG_KBD -DKSI_PULLUPS
# Feature: ghostkey filter
ifdef CFG_EN_GHOSTKEY
CFLAGS += -DCFG_EN_GHOSTKEY
DRIVERS += keyboard_ghostkey
endif
ifdef CFG_GHOSTKEY_MAX_DETECT
CFLAGS += -DCFG_GHOSTKEY_MAX_DETECT=$(CFG_GHOSTKEY_MAX_DETECT)
endif
# BT
CFLAGS += \
-DNO_ATM_SCAN \
-DNO_GAP_SEC_PASSKEY \
-DNO_GAP_SEC_NC \
-DCFG_GAP_PARAM_CONST=0 \
-DCFG_S_MAX_ENTRY=2 \
-DBLE_MSG_HANDLER_LIST_SIZE=10 \
-DCFG_RC_BIG_MTU \
-DCFG_RC_SLAVE_PARAM_NEGO \
ifneq (,$(filter -DCFG_RC_BIG_MTU,$(CFLAGS)))
FRAMEWORK_MODULES += ble_gattc
else
CFLAGS += -DNO_BLE_GATTC
endif
INCLUDES += \
$(SRC_TOP) \
$(SRC_BT) \
$(SRC_NONBT) \
# define the files would not include to $(APP).a
EXCLUDE_APP_LIB_C_SRCS += \
$(SRC_TOP)/rc_mmi.c \
$(SRC_TOP)/rc_mmi_vkey.c \
ifdef FLASHROM
UU_TEST += rc_mmi rc_mmi_vkey
endif
# Others would include to $(APP).a
# Application : Non-BT part
C_SRCS += \
$(SRC_NONBT)/rc_pdm.c \
CFLAGS += \
-DCFG_ADV_DATA_PARAM_CONST=0 \
ifdef FLASHROM
UU_TEST += rc_pdm
endif
# Application: BT part
C_SRCS += \
$(SRC_BT)/rc_gap.c \
$(SRC_BT)/rc_ota.c \
$(SRC_BT)/rc_hogp.c \
ifdef FLASHROM
UU_TEST += rc_gap rc_ota rc_hogp
endif
C_SRCS += $(EXCLUDE_APP_LIB_C_SRCS)
CFLAGS += \
-DGAP_PARM_NAME="app_config.h" \
-DGAP_ADV_PARM_NAME="app_config.h" \
-DGAP_SCAN_PARM_NAME="app_config.h" \
-DAPP_VERSION=\"1.0.0.0\" \
flash_nvds.data += \
02-DEVICE_NAME/remote \
11-SLEEP_ENABLE/hib \
12-EXT_WAKEUP_ENABLE/enable2 \
ifdef NO_BROWNOUT
CFLAGS += -DCFG_RC_NO_BROWNOUT
endif
include rc_test_mode.mk
include $(COMMON_USER_DIR)/profiles.mk
include $(COMMON_USER_DIR)/framework.mk