feat: Rationalise module size handling (#3624)
* Rationalise module size handling * Compile fix * DSM2 and DSMP exist only in JR size * XJT Lite and R9MP require usart * Fix comment * Enable no external module choice * Save some flash * TProV2 does have a small module * T20 has a small module * chore: Define managed by cmake * fix: X9D+2019 has a JR Micro bay --------- Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
@@ -889,13 +889,18 @@ bool isExternalModuleAvailable(int moduleType)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
#if !defined(XJT)
|
||||
if (moduleType == MODULE_TYPE_XJT_PXX1)
|
||||
#if defined(HARDWARE_EXTERNAL_MODULE_SIZE_SML) and !defined(EXTMODULE_USART_GPIO)
|
||||
if (moduleType == MODULE_TYPE_XJT_LITE_PXX2 ||
|
||||
moduleType == MODULE_TYPE_R9M_PXX2)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
#if !defined(HARDWARE_EXTERNAL_MODULE_SIZE_STD)
|
||||
if (moduleType == MODULE_TYPE_R9M_PXX1 || moduleType == MODULE_TYPE_R9M_PXX2)
|
||||
if (moduleType == MODULE_TYPE_R9M_PXX1 ||
|
||||
moduleType == MODULE_TYPE_R9M_PXX2 ||
|
||||
moduleType == MODULE_TYPE_XJT_PXX1 ||
|
||||
moduleType == MODULE_TYPE_DSM2 ||
|
||||
moduleType == MODULE_TYPE_LEMON_DSMP )
|
||||
return false;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ option(TRACE_FATFS "Traces FatFS enabled" OFF)
|
||||
option(TRACE_AUDIO "Traces audio enabled" OFF)
|
||||
option(DEBUG_TRACE_BUFFER "Debug Trace Screen" OFF)
|
||||
option(XJT "XJT TX Module" ON)
|
||||
option(MODULE_SIZE_STD "Standard size TX Module" ON)
|
||||
option(PPM "PPM TX Module" ON)
|
||||
option(DSM2 "DSM2 TX Module" ON)
|
||||
option(SBUS "SBUS TX Module" ON)
|
||||
@@ -78,10 +77,27 @@ if(DEFAULT_INTERNAL_MODULE)
|
||||
add_definitions(-DDEFAULT_INTERNAL_MODULE=MODULE_TYPE_${DEFAULT_INTERNAL_MODULE})
|
||||
endif()
|
||||
|
||||
if(MODULE_SIZE_STD)
|
||||
add_definitions(-DHARDWARE_EXTERNAL_MODULE_SIZE_STD)
|
||||
endif()
|
||||
|
||||
if(MODULE_SIZE_SML)
|
||||
add_definitions(-DHARDWARE_EXTERNAL_MODULE_SIZE_SML)
|
||||
endif()
|
||||
|
||||
if(NOT MODULE_SIZE_STD AND NOT MODULE_SIZE_SML)
|
||||
set(HARDWARE_EXTERNAL_MODULE NO)
|
||||
set(GHOST NO)
|
||||
endif()
|
||||
|
||||
if(HARDWARE_EXTERNAL_MODULE)
|
||||
add_definitions(-DHARDWARE_EXTERNAL_MODULE)
|
||||
endif()
|
||||
|
||||
if(MULTIMODULE STREQUAL INTERNAL)
|
||||
add_definitions(-DINTERNAL_MODULE_MULTI)
|
||||
endif()
|
||||
|
||||
if(TIMERS EQUAL 3)
|
||||
add_definitions(-DTIMERS=3)
|
||||
else()
|
||||
@@ -209,18 +225,6 @@ if(PXX2)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(XJT)
|
||||
add_definitions(-DXJT)
|
||||
endif()
|
||||
|
||||
if(MODULE_SIZE_STD)
|
||||
add_definitions(-DHARDWARE_EXTERNAL_MODULE_SIZE_STD)
|
||||
endif()
|
||||
|
||||
if(MULTIMODULE STREQUAL INTERNAL)
|
||||
add_definitions(-DINTERNAL_MODULE_MULTI)
|
||||
endif()
|
||||
|
||||
if(MULTIMODULE)
|
||||
add_definitions(-DMULTIMODULE)
|
||||
set(SRC ${SRC} pulses/multi.cpp telemetry/hitec.cpp telemetry/hott.cpp telemetry/mlink.cpp telemetry/multi.cpp io/multi_firmware_update.cpp)
|
||||
|
||||
@@ -7,6 +7,7 @@ option(AFHDS3 "AFHDS3 TX Module" ON)
|
||||
option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" ON)
|
||||
option(GHOST "Ghost TX Module" ON)
|
||||
option(SPACEMOUSE "Support for SpaceMouse" OFF)
|
||||
option(MODULE_SIZE_STD "Standard size TX Module" ON)
|
||||
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F4)
|
||||
|
||||
@@ -6,6 +6,7 @@ option(AFHDS2 "Support for AFHDS2" ON)
|
||||
option(GHOST "Ghost TX Module" ON)
|
||||
option(PXX1 "PXX1 protocol support" ON)
|
||||
option(PXX2 "PXX2 protocol support" OFF)
|
||||
option(MODULE_SIZE_STD "Standard size TX Module" ON)
|
||||
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F4)
|
||||
|
||||
@@ -42,6 +42,7 @@ if(PCB STREQUAL X9E)
|
||||
set(STATUS_LEDS NO)
|
||||
set(BLUETOOTH YES)
|
||||
set(ROTARY_ENCODER YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
elseif(PCB STREQUAL X9D+)
|
||||
set(HAPTIC YES)
|
||||
@@ -71,12 +72,14 @@ elseif(PCB STREQUAL X9D+)
|
||||
set(BLUETOOTH YES)
|
||||
set(ROTARY_ENCODER YES)
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
else()
|
||||
set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module")
|
||||
set(FLAVOUR x9d+)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
set(AUX_SERIAL ON)
|
||||
set(STATUS_LEDS NO)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
endif()
|
||||
elseif(PCB STREQUAL X9D)
|
||||
set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module")
|
||||
@@ -95,7 +98,7 @@ elseif(PCB STREQUAL X9D)
|
||||
set(GVAR_SCREEN model_gvars.cpp)
|
||||
set(STATUS_LEDS NO)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
#set(AFHDS3 NO)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
elseif(PCB STREQUAL X7)
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(HAPTIC YES)
|
||||
@@ -111,6 +114,7 @@ elseif(PCB STREQUAL X7)
|
||||
if(PCBREV STREQUAL T12)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
set(FLAVOUR t12)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -121,6 +125,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TPRO)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR tpro)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(ROTARY_ENCODER YES)
|
||||
@@ -133,6 +138,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TPROV2)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR tprov2)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -141,9 +147,10 @@ elseif(PCB STREQUAL X7)
|
||||
add_definitions(-DRADIO_TPROV2)
|
||||
add_definitions(-DMANUFACTURER_JUMPER)
|
||||
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
|
||||
elseif(PCBREV STREQUAL T20)
|
||||
elseif(PCBREV STREQUAL T20)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR t20)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(ROTARY_ENCODER YES)
|
||||
@@ -155,6 +162,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TLITE)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR tlite)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -166,6 +174,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TLITEF4)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR tlitef4)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
set(CPU_TYPE_FULL STM32F407xE) # for size report
|
||||
@@ -177,6 +186,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL LR3PRO)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR lr3pro)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -187,6 +197,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TX12)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
set(FLAVOUR tx12)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -199,6 +210,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL TX12MK2)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
set(FLAVOUR tx12mk2)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -215,6 +227,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL BOXER)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR boxer)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -231,6 +244,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL ZORRO)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR zorro)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -262,6 +276,7 @@ elseif(PCB STREQUAL X7)
|
||||
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(HARDWARE_EXTERNAL_MODULE YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR commando8)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -274,6 +289,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCBREV STREQUAL ACCESS)
|
||||
set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
set(FLAVOUR x7access)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
@@ -297,6 +313,7 @@ elseif(PCB STREQUAL X7)
|
||||
set(BLUETOOTH YES)
|
||||
add_definitions(-DBLUETOOTH_PROBE)
|
||||
set(ROTARY_ENCODER YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
if(DEFINED PCBREV_HARDCODED)
|
||||
# This *can* be used to prevent messing with PA14 (SWCLK), so stlink can be used
|
||||
@@ -310,6 +327,7 @@ elseif(PCB STREQUAL X7)
|
||||
elseif(PCB STREQUAL X9LITE)
|
||||
set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -333,6 +351,7 @@ elseif(PCB STREQUAL X9LITE)
|
||||
elseif(PCB STREQUAL X9LITES)
|
||||
set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
@@ -357,6 +376,7 @@ elseif(PCB STREQUAL X9LITES)
|
||||
elseif(PCB STREQUAL XLITE)
|
||||
set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(PXX_FREQUENCY "HIGH" CACHE STRING "PXX frequency (LOW / HIGH)") # always use HIGH except on some prototype boards
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F2)
|
||||
@@ -380,6 +400,7 @@ elseif(PCB STREQUAL XLITE)
|
||||
elseif(PCB STREQUAL XLITES)
|
||||
set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
|
||||
@@ -1948,16 +1948,11 @@
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
#if defined(RADIO_ZORRO)
|
||||
#define HARDWARE_EXTERNAL_MODULE_SIZE_SML
|
||||
#endif
|
||||
#elif defined(PCBX9LITE)
|
||||
#define HARDWARE_EXTERNAL_MODULE_SIZE_SML
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_PWR_GPIO GPIOA
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PA.08
|
||||
#else
|
||||
#define HARDWARE_EXTERNAL_MODULE_SIZE_SML
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_11 // PD.11
|
||||
@@ -1994,9 +1989,6 @@
|
||||
#define EXTMODULE_USART_RX_DMA_STREAM DMA2_Stream1
|
||||
#define EXTMODULE_USART_RX_DMA_STREAM_LL LL_DMA_STREAM_1
|
||||
#else
|
||||
#if defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TLITE)
|
||||
#define HARDWARE_EXTERNAL_MODULE_SIZE_SML
|
||||
#endif
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#if defined(RADIO_COMMANDO8)
|
||||
#define EXTMODULE_RF_SWITCH_GPIO GPIOE //Antenna switching port
|
||||
@@ -2010,7 +2002,6 @@
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_1 // PB.01
|
||||
#define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
|
||||
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
|
||||
#define HARDWARE_EXTERNAL_MODULE_SIZE_SML
|
||||
#else
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
|
||||
Reference in New Issue
Block a user