From 3439a94aa47c0bf49923e6665c7292645f1ca84f Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sat, 20 Nov 2021 18:31:07 +0100 Subject: [PATCH] Some cleanup --- radio/src/targets/common/arm/CMakeLists.txt | 2 +- radio/src/targets/horus/CMakeLists.txt | 64 ++++++------- radio/src/targets/simu/CMakeLists.txt | 3 + radio/src/targets/simu/backlight_driver.cpp | 23 +++++ radio/src/targets/simu/led_driver.cpp | 25 +++++ radio/src/targets/simu/module_drivers.cpp | 70 ++++++++++++++ radio/src/targets/simu/simpgmspace.cpp | 68 ++----------- radio/src/targets/taranis/CMakeLists.txt | 101 ++++++++++---------- radio/src/tests/CMakeLists.txt | 3 + 9 files changed, 212 insertions(+), 147 deletions(-) create mode 100644 radio/src/targets/simu/backlight_driver.cpp create mode 100644 radio/src/targets/simu/led_driver.cpp create mode 100644 radio/src/targets/simu/module_drivers.cpp diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index 93e233d1f..27fa71251 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -164,7 +164,7 @@ endif() if(HAPTIC) add_definitions(-DHAPTIC) set(SRC ${SRC} haptic.cpp) - set(TARGET_SRC ${TARGET_SRC} haptic_driver.cpp) + set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} haptic_driver.cpp) endif() # Protocols supported diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index eaac55e49..f92669275 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -59,21 +59,17 @@ if (PCB STREQUAL X10) set(PCBREV "STD" CACHE STRING "PCB Revision") add_definitions(-DPCBX10) add_definitions(-DSOFTWARE_VOLUME) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/audio_dac_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/stm32_hal_adc.cpp + targets/common/arm/stm32/audio_dac_driver.cpp ) if (NOT PCBREV STREQUAL TX16S) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/sticks_pwm_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/sticks_pwm_driver.cpp ) endif() - set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} - ../common/arm/stm32/stm32_hal_adc.cpp - ../../hal/adc_driver.cpp - ) set(BITMAPS_TARGET x10_bitmaps) set(FONTS_TARGET x10_fonts) set(LCD_DRIVER lcd_driver.cpp) @@ -141,13 +137,9 @@ elseif (PCB STREQUAL X12S) endif() set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS") add_definitions(-DPCBX12S) - set(TARGET_SRC - ${TARGET_SRC} - audio_spi_driver.cpp - ) set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} - ../../hal/adc_driver.cpp + audio_spi_driver.cpp x12s_adc_driver.cpp ) set(BITMAPS_TARGET x12s_bitmaps) @@ -235,18 +227,6 @@ endif() set(GVAR_SCREEN model_gvars.cpp) -set(TARGET_SRC - ${TARGET_SRC} - led_driver.cpp - trainer_driver.cpp - ../common/arm/stm32/mixer_scheduler_driver.cpp - ../common/arm/stm32/timers_driver.cpp - ../common/arm/stm32/intmodule_serial_driver.cpp - ../common/arm/stm32/extmodule_serial_driver.cpp - ../common/arm/stm32/stm32_usart_driver.cpp - ../common/arm/stm32/rotary_encoder_driver.cpp - ) - if(HARDWARE_TOUCH) set(TOUCH_DRIVER tp_gt911.cpp i2c_driver.cpp) add_definitions(-DHARDWARE_TOUCH) @@ -254,7 +234,7 @@ if(HARDWARE_TOUCH) endif() if(USB_CHARGER) - set(TARGET_SRC ${TARGET_SRC} usb_charger_driver.cpp) + set(FIRMWARE_TARGET_SRC ${TARGET_SRC} usb_charger_driver.cpp) add_definitions(-DUSB_CHARGER) endif() @@ -292,17 +272,31 @@ set(FIRMWARE_TARGET_SRC ${TOUCH_DRIVER} board.cpp backlight_driver.cpp - ../common/arm/stm32/pwr_driver.cpp + led_driver.cpp + extmodule_driver.cpp + trainer_driver.cpp sdram_driver.c startup_stm32f42_43xxx.s - ../common/arm/stm32/heartbeat_driver.cpp - ../common/arm/stm32/sdio_sd.c + ) + +set(FIRMWARE_SRC + ${FIRMWARE_SRC} + hal/adc_driver.cpp + targets/common/arm/stm32/mixer_scheduler_driver.cpp + targets/common/arm/stm32/timers_driver.cpp + targets/common/arm/stm32/intmodule_serial_driver.cpp + targets/common/arm/stm32/extmodule_serial_driver.cpp + targets/common/arm/stm32/stm32_usart_driver.cpp + targets/common/arm/stm32/rotary_encoder_driver.cpp + targets/common/arm/stm32/pwr_driver.cpp + targets/common/arm/stm32/heartbeat_driver.cpp + targets/common/arm/stm32/sdio_sd.c ) if(BOOTLOADER) - set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} - ../common/arm/loadboot.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/loadboot.cpp ) endif() diff --git a/radio/src/targets/simu/CMakeLists.txt b/radio/src/targets/simu/CMakeLists.txt index b97f69bf5..1ebe8a6f1 100644 --- a/radio/src/targets/simu/CMakeLists.txt +++ b/radio/src/targets/simu/CMakeLists.txt @@ -16,6 +16,9 @@ set(SIMU_SRC simufatfs.cpp simudisk.cpp simulcd.cpp + module_drivers.cpp + led_driver.cpp + backlight_driver.cpp ) if(SIMU_DISKIO) diff --git a/radio/src/targets/simu/backlight_driver.cpp b/radio/src/targets/simu/backlight_driver.cpp new file mode 100644 index 000000000..43a3c25e0 --- /dev/null +++ b/radio/src/targets/simu/backlight_driver.cpp @@ -0,0 +1,23 @@ +/* + * Copyright (C) EdgeTx + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +void backlightEnable(unsigned char) {} +void backlightDisable() {} diff --git a/radio/src/targets/simu/led_driver.cpp b/radio/src/targets/simu/led_driver.cpp new file mode 100644 index 000000000..d0b37c62e --- /dev/null +++ b/radio/src/targets/simu/led_driver.cpp @@ -0,0 +1,25 @@ +/* + * Copyright (C) EdgeTx + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +void usbChargerLed() {} +void ledRed() {} +void ledBlue() {} +void ledOff() {} diff --git a/radio/src/targets/simu/module_drivers.cpp b/radio/src/targets/simu/module_drivers.cpp new file mode 100644 index 000000000..644fb47fc --- /dev/null +++ b/radio/src/targets/simu/module_drivers.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "hal/serial_driver.h" +#include "intmodule_serial_driver.h" + +#include "io/frsky_pxx2.h" +ModuleFifo intmoduleFifo; + +void intmoduleStop() {} +void intmoduleFifoError() {} +void intmoduleFifoReceive(uint8_t){} + +void extmoduleStop() {} +void extmodulePpmStart() {} +void extmoduleSerialStart() {} +void extmodulePxx1PulsesStart() {} +void extmoduleSendInvertedByte(uint8_t) {} +void extmoduleSendNextFramePxx1(void const*, unsigned short) {} +void extmoduleSendNextFrameAFHDS3(void const*, unsigned short) {} +void extmoduleSendNextFrameSoftSerial100kbit(void const*, unsigned short) {} + +void init_trainer_ppm() {} +void stop_trainer_ppm() {} + +void init_trainer_capture() {} +void stop_trainer_capture() {} + +void init_trainer_module_cppm() {} +void stop_trainer_module_cppm() {} + +void init_trainer_module_sbus() {} +void stop_trainer_module_sbus() {} + +void init_intmodule_heartbeat() {} +void stop_intmodule_heartbeat() {} + +static void init(const etx_serial_init*) {} +static void deinit() {} +static void sendByte(uint8_t) {} +static void sendBuffer(const uint8_t*, uint8_t) {} +static void waitForTxCompleted() {} + +const etx_serial_driver_t IntmoduleSerialDriver = { + .init = init, + .deinit = deinit, + .sendByte = sendByte, + .sendBuffer = sendBuffer, + .waitForTxCompleted = waitForTxCompleted, + .setReceiveCb = nullptr, + .setOnErrorCb = nullptr, +}; diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 1829b3b5f..3dae414d7 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -47,34 +47,13 @@ bool simu_running = false; uint32_t telemetryErrors = 0; +// TODO: remove all STM32 defs GPIO_TypeDef gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog, gpioh, gpioi, gpioj; -TIM_TypeDef tim1, tim2, tim3, tim4, tim5, tim6, tim7, tim8, tim9, tim10; -RCC_TypeDef rcc; -DMA_Stream_TypeDef dma1_stream1, dma1_stream2, dma1_stream3, dma1_stream4, dma1_stream5, dma1_stream6, dma1_stream7, dma2_stream1, dma2_stream2, dma2_stream5, dma2_stream6, dma2_stream7; -DMA_TypeDef dma2; USART_TypeDef Usart0, Usart1, Usart2, Usart3, Usart4; -SysTick_Type systick; ADC_Common_TypeDef adc; RTC_TypeDef rtc; void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { } -void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) { } -void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState) { } -void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { } -FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) { return RESET; } -uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) { return 0; } -void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) { } -void DMA_DeInit(DMA_Stream_TypeDef* DMAy_Streamx) { } -void DMA_Init(DMA_Stream_TypeDef* DMAy_Streamx, DMA_InitTypeDef* DMA_InitStruct) { } -void DMA_ITConfig(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT, FunctionalState NewState) { } -void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) { } -void DMA_Cmd(DMA_Stream_TypeDef* DMAy_Streamx, FunctionalState NewState) { } void lcdCopy(void * dest, void * src); -FlagStatus DMA_GetFlagStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_FLAG) { return RESET; } -ITStatus DMA_GetITStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { return RESET; } -void DMA_ClearITPendingBit(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { } -void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) { } -void UART3_Configure(uint32_t baudrate, uint32_t masterClock) { } -void NVIC_Init(NVIC_InitTypeDef * NVIC_InitStruct) { } FATFS g_FATFS_Obj; @@ -129,15 +108,6 @@ uint64_t CoGetOSTime(void) void simuInit() { - RCC->CSR = 0; - - // set power button to "not pressed" -#if defined(PWR_SWITCH_GPIO) // STM32 - GPIO_SetBits(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN); -#elif defined(PIO_PC17) // AT91SAM3 - PIOC->PIO_PDSR &= ~PIO_PC17; -#endif - #if defined(ROTARY_ENCODER_NAVIGATION) rotencValue = 0; #endif @@ -488,35 +458,11 @@ void boardInit() { } -uint32_t pwrCheck() -{ - // TODO: ability to simulate shutdown warning for a "soft" simulator restart - return simu_shutdown ? e_power_off : e_power_on; -} - -bool pwrPressed() -{ - // TODO: simulate power button -#if defined(PWR_SWITCH_GPIO) // STM32 - return GPIO_ReadInputDataBit(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN) == Bit_RESET; -#elif defined(PIO_PC17) // AT91SAM3 - return PIOC->PIO_PDSR & PIO_PC17; -#else - return false; -#endif -} - -void pwrInit() -{ -} - -void pwrOn() -{ -} - -void pwrOff() -{ -} +uint32_t pwrCheck() { return simu_shutdown ? e_power_off : e_power_on; } +bool pwrPressed() { return false; } +void pwrInit() {} +void pwrOn() {} +void pwrOff() {} void readKeysAndTrims() { @@ -745,6 +691,8 @@ void boardOff() { } +void hapticOff() {} + #if defined(PCBFRSKY) || defined(PCBFLYSKY) HardwareOptions hardwareOptions; #endif diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index b7a15b978..80556ef53 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -384,9 +384,9 @@ endif() if(GYRO) add_definitions(-DGYRO) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/lsm6ds_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/lsm6ds_driver.cpp ) set(SRC ${SRC} @@ -408,10 +408,10 @@ if(INTERNAL_MODULE_SERIAL) if(PXX_FREQUENCY STREQUAL HIGH) add_definitions(-DPXX_FREQUENCY_HIGH) endif() - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/intmodule_serial_driver.cpp - ../common/arm/stm32/stm32_usart_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/intmodule_serial_driver.cpp + targets/common/arm/stm32/stm32_usart_driver.cpp ) else() @@ -419,46 +419,50 @@ else() # defines existing internal modules set(INTERNAL_MODULES PXX1) - set(TARGET_SRC - ${TARGET_SRC} + set(FIRMWARE_TARGET_SRC + ${FIRMWARE_TARGET_SRC} intmodule_pulses_driver.cpp ) endif() if(HARDWARE_EXTERNAL_MODULE) - set(TARGET_SRC ${TARGET_SRC} extmodule_driver.cpp) + set(FIRMWARE_TARGET_SRC ${TARGET_SRC} extmodule_driver.cpp) + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/extmodule_serial_driver.cpp + targets/common/arm/stm32/stm32_usart_driver.cpp + ) endif() if(ROTARY_ENCODER) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/rotary_encoder_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/rotary_encoder_driver.cpp ) endif() if(BIND_KEY) - set(TARGET_SRC - ${TARGET_SRC} - bind_button_driver.cpp - ) + set(FIRMWARE_TARGET_SRC + ${FIRMWARE_TARGET_SRC} + bind_button_driver.cpp + ) add_definitions(-DBIND_KEY) endif() if(USB_CHARGER) - set(TARGET_SRC ${TARGET_SRC} usb_charger_driver.cpp) + set(FIRMWARE_TARGET_SRC + ${FIRMWARE_TARGET_SRC} usb_charger_driver.cpp) add_definitions(-DUSB_CHARGER) endif() if(BLUETOOTH) add_definitions(-DBLUETOOTH) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/bluetooth_driver.cpp - ) + set(FIRMWARE_TARGET_SRC + ${FIRMWARE_TARGET_SRC} + targets/common/arm/stm32/bluetooth_driver.cpp) set(SRC ${SRC} - bluetooth.cpp - ) + bluetooth.cpp) if(NOT PCB STREQUAL X9E) # Bluetooth on X9E is compatible with almost nothing add_definitions(-DHARDWARE_TRAINER_BLUETOOTH) @@ -518,37 +522,32 @@ set(SRC sbus.cpp ) -set(TARGET_SRC - ${TARGET_SRC} +set(FIRMWARE_TARGET_SRC + ${FIRMWARE_TARGET_SRC} ${LED_DRIVER} - backlight_driver.cpp - trainer_driver.cpp - ../common/arm/stm32/timers_driver.cpp - ../common/arm/stm32/audio_dac_driver.cpp - ) - -set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} - ../common/arm/stm32/stm32_hal_adc.cpp - ../../hal/adc_driver.cpp - ../common/arm/stm32/heartbeat_driver.cpp - ../common/arm/stm32/mixer_scheduler_driver.cpp - ) - -if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/sticks_pwm_driver.cpp - ) -endif() - -set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} ${LCD_DRIVER} board.cpp i2c_driver.cpp - ../common/arm/stm32/pwr_driver.cpp - ../common/arm/loadboot.cpp + backlight_driver.cpp + trainer_driver.cpp + ) + +if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES) + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/sticks_pwm_driver.cpp) +endif() + +set(FIRMWARE_SRC + ${FIRMWARE_SRC} + hal/adc_driver.cpp + targets/common/arm/loadboot.cpp + targets/common/arm/stm32/stm32_hal_adc.cpp + targets/common/arm/stm32/heartbeat_driver.cpp + targets/common/arm/stm32/mixer_scheduler_driver.cpp + targets/common/arm/stm32/timers_driver.cpp + targets/common/arm/stm32/audio_dac_driver.cpp + targets/common/arm/stm32/pwr_driver.cpp ) if(LCD_DUAL_BUFFER) diff --git a/radio/src/tests/CMakeLists.txt b/radio/src/tests/CMakeLists.txt index 4417696c3..412ef6558 100644 --- a/radio/src/tests/CMakeLists.txt +++ b/radio/src/tests/CMakeLists.txt @@ -61,6 +61,9 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) ../targets/simu/simueeprom.cpp ../targets/simu/simufatfs.cpp ../targets/simu/simulcd.cpp + ../targets/simu/module_drivers.cpp + ../targets/simu/led_driver.cpp + ../targets/simu/backlight_driver.cpp ) add_dependencies(gtests-radio ${RADIO_DEPENDENCIES} ${FIRMWARE_DEPENDENCIES} gtests-radio-lib) if(PCB STREQUAL X12S OR PCB STREQUAL X10)