diff --git a/Makefile b/Makefile index 09d8502260..d01ae6d59e 100644 --- a/Makefile +++ b/Makefile @@ -56,14 +56,13 @@ FORKNAME = betaflight # Working directories ROOT := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +PLATFORM_DIR := $(ROOT)/src/platform SRC_DIR := $(ROOT)/src/main OBJECT_DIR := $(ROOT)/obj/main BIN_DIR := $(ROOT)/obj CMSIS_DIR := $(ROOT)/lib/main/CMSIS -INCLUDE_DIRS := $(SRC_DIR) \ - $(ROOT)/src/main/target +INCLUDE_DIRS := $(SRC_DIR) -LINKER_DIR := $(ROOT)/src/link MAKE_SCRIPT_DIR := $(ROOT)/mk ## V : Set verbosity level based on the V= parameter @@ -83,13 +82,14 @@ endif # some targets use parallel build by default # MAKEFLAGS is valid only inside target, do not use this at parse phase DEFAULT_PARALLEL_JOBS := # all jobs in parallel (for backward compatibility) -MAKE_PARALLEL = $(if $(filter -j%, $(MAKEFLAGS)),$(EMPTY),-j$(DEFAULT_PARALLEL_JOBS)) +MAKE_PARALLEL = $(if $(filter -j%, $(MAKEFLAGS)),$(EMPTY),-j$(DEFAULT_PARALLEL_JOBS)) # pre-build sanity checks include $(MAKE_SCRIPT_DIR)/checks.mk # basic target list -BASE_TARGETS := $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard $(ROOT)/src/main/target/*/target.mk))))) +PLATFORMS := $(sort $(notdir $(patsubst /%,%, $(wildcard $(PLATFORM_DIR)/*)))) +BASE_TARGETS := $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard $(PLATFORM_DIR)/*/target/*/target.mk))))) # configure some directories that are relative to wherever ROOT_DIR is located TOOLS_DIR ?= $(ROOT)/tools @@ -109,7 +109,7 @@ include $(MAKE_SCRIPT_DIR)/$(OSFAMILY).mk include $(MAKE_SCRIPT_DIR)/tools.mk # Search path for sources -VPATH := $(SRC_DIR):$(SRC_DIR)/startup +VPATH := $(SRC_DIR) FATFS_DIR = $(ROOT)/lib/main/FatFS FATFS_SRC = $(notdir $(wildcard $(FATFS_DIR)/*.c)) CSOURCES := $(shell find $(SRC_DIR) -name '*.c') @@ -132,9 +132,15 @@ endif # default xtal value HSE_VALUE ?= 8000000 -CI_EXCLUDED_TARGETS := $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard $(ROOT)/src/main/target/*/.exclude))))) -CI_TARGETS := $(filter-out $(CI_EXCLUDED_TARGETS), $(BASE_TARGETS)) $(filter CRAZYBEEF4SX1280 CRAZYBEEF4FR STM32F4DISCOVERY IFLIGHT_BLITZ_F722 NUCLEOF446 SPRACINGH7EXTREME SPRACINGH7RF, $(BASE_CONFIGS)) -include $(ROOT)/src/main/target/$(TARGET)/target.mk +CI_EXCLUDED_TARGETS := $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard $(PLATFORM_DIR)/*/target/*/.exclude))))) +CI_TARGETS := $(filter-out $(CI_EXCLUDED_TARGETS), $(BASE_TARGETS)) $(filter STM32F4DISCOVERY CRAZYBEEF4SX1280 CRAZYBEEF4FR IFLIGHT_BLITZ_F722 NUCLEOF446 SPRACINGH7EXTREME SPRACINGH7RF, $(BASE_CONFIGS)) + +TARGET_PLATFORM := $(notdir $(patsubst %/,%,$(subst target/$(TARGET)/,, $(dir $(wildcard $(PLATFORM_DIR)/*/target/$(TARGET)/target.mk))))) +TARGET_PLATFORM_DIR := $(PLATFORM_DIR)/$(TARGET_PLATFORM) +LINKER_DIR := $(TARGET_PLATFORM_DIR)/link +VPATH := $(VPATH):$(TARGET_PLATFORM_DIR):$(TARGET_PLATFORM_DIR)/startup + +include $(TARGET_PLATFORM_DIR)/target/$(TARGET)/target.mk REVISION := norevision ifeq ($(shell git diff --shortstat),) @@ -173,7 +179,6 @@ OPTIMISE_SIZE := -Os LTO_FLAGS := $(OPTIMISATION_BASE) $(OPTIMISE_SPEED) endif -VPATH := $(VPATH):$(MAKE_SCRIPT_DIR)/mcu VPATH := $(VPATH):$(MAKE_SCRIPT_DIR) # start specific includes @@ -185,13 +190,13 @@ ifeq ($(TARGET_MCU_FAMILY),) $(error No TARGET_MCU_FAMILY specified. Is the target.mk valid for $(TARGET)?) endif -TARGET_FLAGS := -D$(TARGET) -D$(TARGET_MCU_FAMILY) $(TARGET_FLAGS) +TARGET_FLAGS := -D$(TARGET) -D$(TARGET_PLATFORM) -D$(TARGET_MCU_FAMILY) $(TARGET_FLAGS) ifneq ($(CONFIG),) -TARGET_FLAGS := $(TARGET_FLAGS) -DUSE_CONFIG +TARGET_FLAGS := $(TARGET_FLAGS) -DUSE_CONFIG endif -include $(MAKE_SCRIPT_DIR)/mcu/$(TARGET_MCU_FAMILY).mk +include $(TARGET_PLATFORM_DIR)/mk/$(TARGET_MCU_FAMILY).mk # openocd specific includes include $(MAKE_SCRIPT_DIR)/openocd.mk @@ -211,8 +216,7 @@ ifneq ($(HSE_VALUE),) DEVICE_FLAGS := $(DEVICE_FLAGS) -DHSE_VALUE=$(HSE_VALUE) endif -TARGET_DIR = $(ROOT)/src/main/target/$(TARGET) -TARGET_DIR_SRC = $(notdir $(wildcard $(TARGET_DIR)/*.c)) +TARGET_DIR = $(TARGET_PLATFORM_DIR)/target/$(TARGET) .DEFAULT_GOAL := hex diff --git a/mk/source.mk b/mk/source.mk index b4fe31814f..4822210aa7 100644 --- a/mk/source.mk +++ b/mk/source.mk @@ -48,7 +48,6 @@ COMMON_SRC = \ build/debug.c \ build/debug_pin.c \ build/version.c \ - $(TARGET_DIR_SRC) \ main.c \ $(PG_SRC) \ common/bitarray.c \ @@ -98,6 +97,7 @@ COMMON_SRC = \ drivers/bus_spi_config.c \ drivers/bus_spi_pinconfig.c \ drivers/buttons.c \ + drivers/camera_control.c \ drivers/display.c \ drivers/display_canvas.c \ drivers/dma_common.c \ diff --git a/src/main/drivers/mcu/stm32/camera_control.c b/src/main/drivers/camera_control.c similarity index 70% rename from src/main/drivers/mcu/stm32/camera_control.c rename to src/main/drivers/camera_control.c index 2e92243ed2..b787448436 100644 --- a/src/main/drivers/mcu/stm32/camera_control.c +++ b/src/main/drivers/camera_control.c @@ -1,19 +1,20 @@ /* - * This file is part of Cleanflight and Betaflight. + * This file is part of Betaflight. * - * Cleanflight and Betaflight are free software. You can redistribute - * this software and/or modify this software under the terms of the - * GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) - * any later version. + * Betaflight is free software. You can redistribute this software + * and/or modify this software under the terms of the GNU General + * Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later + * version. + * + * Betaflight 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. * - * Cleanflight and Betaflight are distributed in the hope that they - * 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. * - * You should have received a copy of the GNU General Public License - * along with this software. + * You should have received a copy of the GNU General Public + * License along with this software. * * If not, see . */ @@ -29,30 +30,17 @@ #include #include "drivers/camera_control_impl.h" -#include "drivers/rcc.h" #include "drivers/io.h" -#include "drivers/nvic.h" #include "drivers/pwm_output.h" #include "drivers/time.h" #include "pg/pg_ids.h" -#define CAMERA_CONTROL_PWM_RESOLUTION 128 -#define CAMERA_CONTROL_SOFT_PWM_RESOLUTION 448 - #ifdef CURRENT_TARGET_CPU_VOLTAGE #define ADC_VOLTAGE CURRENT_TARGET_CPU_VOLTAGE #else #define ADC_VOLTAGE 3.3f #endif -#if !defined(STM32F411xE) && !defined(STM32F7) && !defined(STM32H7) && !defined(STM32G4) -#define CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -#include "build/atomic.h" -#endif - -#define CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE -#include "drivers/timer.h" - #ifdef USE_OSD #include "osd/osd.h" #endif @@ -85,7 +73,7 @@ static struct { static uint32_t endTimeMillis; #ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -static void cameraControlHi(void) +void cameraControlHi(void) { if (cameraControlRuntime.inverted) { IOLo(cameraControlRuntime.io); @@ -94,7 +82,7 @@ static void cameraControlHi(void) } } -static void cameraControlLo(void) +void cameraControlLo(void) { if (cameraControlRuntime.inverted) { IOHi(cameraControlRuntime.io); @@ -102,19 +90,6 @@ static void cameraControlLo(void) IOLo(cameraControlRuntime.io); } } - -void TIM6_DAC_IRQHandler(void) -{ - cameraControlHi(); - TIM6->SR = 0; -} - -void TIM7_IRQHandler(void) -{ - cameraControlLo(); - - TIM7->SR = 0; -} #endif void cameraControlInit(void) @@ -136,7 +111,7 @@ void cameraControlInit(void) IOConfigGPIOAF(cameraControlRuntime.io, IOCFG_AF_PP, timerHardware->alternateFunction); - pwmOutConfig(&cameraControlRuntime.channel, timerHardware, timerClock(TIM6), CAMERA_CONTROL_PWM_RESOLUTION, 0, cameraControlRuntime.inverted); + cameraControlHardwarePwmInit(&cameraControlRuntime.channel, timerHardware, cameraControlRuntime.inverted); cameraControlRuntime.period = CAMERA_CONTROL_PWM_RESOLUTION; *cameraControlRuntime.channel.ccr = cameraControlRuntime.period; @@ -151,19 +126,7 @@ void cameraControlInit(void) cameraControlRuntime.period = CAMERA_CONTROL_SOFT_PWM_RESOLUTION; cameraControlRuntime.enabled = true; - - NVIC_InitTypeDef nvicTIM6 = { - TIM6_DAC_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER), ENABLE - }; - NVIC_Init(&nvicTIM6); - NVIC_InitTypeDef nvicTIM7 = { - TIM7_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER), ENABLE - }; - NVIC_Init(&nvicTIM7); - - RCC->APB1ENR |= RCC_APB1Periph_TIM6 | RCC_APB1Periph_TIM7; - TIM6->PSC = 0; - TIM7->PSC = 0; + cameraControlSoftwarePwmInit(); #endif } else if (CAMERA_CONTROL_MODE_DAC == cameraControlConfig()->mode) { // @todo not yet implemented @@ -183,13 +146,14 @@ void cameraControlProcess(uint32_t currentTimeUs) } } +#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) + static float calculateKeyPressVoltage(const cameraControlKey_e key) { const int buttonResistance = cameraControlConfig()->buttonResistanceValues[key] * 100; return 1.0e-2f * cameraControlConfig()->refVoltage * buttonResistance / (100 * cameraControlConfig()->internalResistance + buttonResistance); } -#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) static float calculatePWMDutyCycle(const cameraControlKey_e key) { const float voltage = calculateKeyPressVoltage(key); @@ -231,21 +195,7 @@ void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs) delay(cameraControlConfig()->keyDelayMs + holdDurationMs); cameraControlHi(); } else { - TIM6->CNT = hiTime; - TIM6->ARR = cameraControlRuntime.period; - - TIM7->CNT = 0; - TIM7->ARR = cameraControlRuntime.period; - - // Start two timers as simultaneously as possible - ATOMIC_BLOCK(NVIC_PRIO_TIMER) { - TIM6->CR1 = TIM_CR1_CEN; - TIM7->CR1 = TIM_CR1_CEN; - } - - // Enable interrupt generation - TIM6->DIER = TIM_IT_Update; - TIM7->DIER = TIM_IT_Update; + cameraControlSoftwarePwmEnable(hiTime, cameraControlRuntime.period); const uint32_t endTime = millis() + cameraControlConfig()->keyDelayMs + holdDurationMs; @@ -253,10 +203,7 @@ void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs) while (millis() < endTime); // Disable timers and interrupt generation - TIM6->CR1 &= ~TIM_CR1_CEN; - TIM7->CR1 &= ~TIM_CR1_CEN; - TIM6->DIER = 0; - TIM7->DIER = 0; + cameraControlSoftwarePwmDisable(); // Reset to idle state IOHi(cameraControlRuntime.io); @@ -267,4 +214,4 @@ void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs) } } -#endif +#endif // USE_CAMERA_CONTROL diff --git a/src/main/drivers/camera_control_impl.h b/src/main/drivers/camera_control_impl.h index 320f6352b8..df3852772c 100644 --- a/src/main/drivers/camera_control_impl.h +++ b/src/main/drivers/camera_control_impl.h @@ -22,6 +22,10 @@ #include "io_types.h" #include "pg/pg.h" +#include "drivers/pwm_output.h" + +#define CAMERA_CONTROL_PWM_RESOLUTION 128 +#define CAMERA_CONTROL_SOFT_PWM_RESOLUTION 448 typedef enum { CAMERA_CONTROL_KEY_ENTER, @@ -58,3 +62,11 @@ void cameraControlInit(void); void cameraControlProcess(uint32_t currentTimeUs); void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs); + +void cameraControlHi(void); +void cameraControlLo(void); + +void cameraControlSoftwarePwmInit(void); +void cameraControlSoftwarePwmEnable(uint32_t hiTime, uint32_t period); +void cameraControlSoftwarePwmDisable(void); +void cameraControlHardwarePwmInit(timerChannel_t *channel, const timerHardware_t *timerHardware, uint8_t inverted); diff --git a/src/main/drivers/dma.h b/src/main/drivers/dma.h index 330126b3bb..2b727044d5 100644 --- a/src/main/drivers/dma.h +++ b/src/main/drivers/dma.h @@ -23,11 +23,11 @@ #include "drivers/resource.h" #if defined(USE_ATBSP_DRIVER) -#include "drivers/mcu/at32/dma_atbsp.h" +#include "dma_atbsp.h" #endif #if defined(APM32F4) -#include "drivers/mcu/apm32/dma_apm32.h" +#include "dma_apm32.h" #endif #define CACHE_LINE_SIZE 32 diff --git a/src/main/drivers/mcu/apm32/camera_control.c b/src/main/drivers/mcu/apm32/camera_control.c deleted file mode 100644 index 45e9de23d6..0000000000 --- a/src/main/drivers/mcu/apm32/camera_control.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * This file is part of Cleanflight and Betaflight. - * - * Cleanflight and Betaflight are free software. You can redistribute - * this software and/or modify this software under the terms of the - * GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) - * any later version. - * - * Cleanflight and Betaflight are distributed in the hope that they - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this software. - * - * If not, see . - */ - -#include "platform.h" - -#ifdef USE_CAMERA_CONTROL - -#ifndef CAMERA_CONTROL_PIN -#define CAMERA_CONTROL_PIN NONE -#endif - -#include - -#include "drivers/camera_control_impl.h" -#include "drivers/rcc.h" -#include "drivers/io.h" -#include "drivers/nvic.h" -#include "drivers/pwm_output.h" -#include "drivers/time.h" -#include "pg/pg_ids.h" - -#define CAMERA_CONTROL_PWM_RESOLUTION 128 -#define CAMERA_CONTROL_SOFT_PWM_RESOLUTION 448 - -#ifdef CURRENT_TARGET_CPU_VOLTAGE -#define ADC_VOLTAGE CURRENT_TARGET_CPU_VOLTAGE -#else -#define ADC_VOLTAGE 3.3f -#endif - -#if !defined(STM32F411xE) && !defined(STM32F7) && !defined(STM32H7) && !defined(STM32G4) -#define CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -#include "build/atomic.h" -#endif - -#define CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE -#include "drivers/timer.h" - -#ifdef USE_OSD -#include "osd/osd.h" -#endif - -PG_REGISTER_WITH_RESET_FN(cameraControlConfig_t, cameraControlConfig, PG_CAMERA_CONTROL_CONFIG, 0); - -void pgResetFn_cameraControlConfig(cameraControlConfig_t *cameraControlConfig) -{ - cameraControlConfig->mode = CAMERA_CONTROL_MODE_HARDWARE_PWM; - cameraControlConfig->refVoltage = 330; - cameraControlConfig->keyDelayMs = 180; - cameraControlConfig->internalResistance = 470; - cameraControlConfig->ioTag = IO_TAG(CAMERA_CONTROL_PIN); - cameraControlConfig->inverted = 0; // Output is inverted externally - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_ENTER] = 450; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_LEFT] = 270; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_UP] = 150; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_RIGHT] = 68; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_DOWN] = 0; -} - -static struct { - bool enabled; - IO_t io; - timerChannel_t channel; - uint32_t period; - uint8_t inverted; -} cameraControlRuntime; - -static uint32_t endTimeMillis; - -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -static void cameraControlHi(void) -{ - if (cameraControlRuntime.inverted) { - IOLo(cameraControlRuntime.io); - } else { - IOHi(cameraControlRuntime.io); - } -} - -static void cameraControlLo(void) -{ - if (cameraControlRuntime.inverted) { - IOHi(cameraControlRuntime.io); - } else { - IOLo(cameraControlRuntime.io); - } -} - -void TMR6_DAC_IRQHandler(void) -{ - cameraControlHi(); - TMR6->STS = 0; -} - -void TMR7_IRQHandler(void) -{ - cameraControlLo(); - - TMR7->STS = 0; -} -#endif - -void cameraControlInit(void) -{ - if (cameraControlConfig()->ioTag == IO_TAG_NONE) - return; - - cameraControlRuntime.inverted = cameraControlConfig()->inverted; - cameraControlRuntime.io = IOGetByTag(cameraControlConfig()->ioTag); - IOInit(cameraControlRuntime.io, OWNER_CAMERA_CONTROL, 0); - - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE - const timerHardware_t *timerHardware = timerAllocate(cameraControlConfig()->ioTag, OWNER_CAMERA_CONTROL, 0); - - if (!timerHardware) { - return; - } - - IOConfigGPIOAF(cameraControlRuntime.io, IOCFG_AF_PP, timerHardware->alternateFunction); - - pwmOutConfig(&cameraControlRuntime.channel, timerHardware, timerClock(TMR6), CAMERA_CONTROL_PWM_RESOLUTION, 0, cameraControlRuntime.inverted); - - cameraControlRuntime.period = CAMERA_CONTROL_PWM_RESOLUTION; - *cameraControlRuntime.channel.ccr = cameraControlRuntime.period; - cameraControlRuntime.enabled = true; -#endif - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE - - IOConfigGPIO(cameraControlRuntime.io, IOCFG_OUT_PP); - cameraControlHi(); - - cameraControlRuntime.period = CAMERA_CONTROL_SOFT_PWM_RESOLUTION; - cameraControlRuntime.enabled = true; - - DAL_NVIC_SetPriority(TMR6_DAC_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); - DAL_NVIC_EnableIRQ(TMR6_DAC_IRQn); - - DAL_NVIC_SetPriority(TMR7_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); - DAL_NVIC_EnableIRQ(TMR7_IRQn); - - __DAL_RCM_TMR6_CLK_ENABLE(); - __DAL_RCM_TMR7_CLK_ENABLE(); - DDL_TMR_SetPrescaler(TMR6, 0); - DDL_TMR_SetPrescaler(TMR7, 0); -#endif - } else if (CAMERA_CONTROL_MODE_DAC == cameraControlConfig()->mode) { - // @todo not yet implemented - } -} - -void cameraControlProcess(uint32_t currentTimeUs) -{ - if (endTimeMillis && currentTimeUs >= 1000 * endTimeMillis) { - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { - *cameraControlRuntime.channel.ccr = cameraControlRuntime.period; - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { - - } - - endTimeMillis = 0; - } -} - -static float calculateKeyPressVoltage(const cameraControlKey_e key) -{ - const int buttonResistance = cameraControlConfig()->buttonResistanceValues[key] * 100; - return 1.0e-2f * cameraControlConfig()->refVoltage * buttonResistance / (100 * cameraControlConfig()->internalResistance + buttonResistance); -} - -#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) -static float calculatePWMDutyCycle(const cameraControlKey_e key) -{ - const float voltage = calculateKeyPressVoltage(key); - - return voltage / ADC_VOLTAGE; -} -#endif - -void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs) -{ - if (!cameraControlRuntime.enabled) - return; - - if (key >= CAMERA_CONTROL_KEYS_COUNT) - return; - -#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) - const float dutyCycle = calculatePWMDutyCycle(key); -#else - (void) holdDurationMs; -#endif - -#ifdef USE_OSD - // Force OSD timeout so we are alone on the display. - resumeRefreshAt = 0; -#endif - - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE - *cameraControlRuntime.channel.ccr = lrintf(dutyCycle * cameraControlRuntime.period); - endTimeMillis = millis() + cameraControlConfig()->keyDelayMs + holdDurationMs; -#endif - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE - const uint32_t hiTime = lrintf(dutyCycle * cameraControlRuntime.period); - - if (0 == hiTime) { - cameraControlLo(); - delay(cameraControlConfig()->keyDelayMs + holdDurationMs); - cameraControlHi(); - } else { - DDL_TMR_SetCounter(TMR6, hiTime); - DDL_TMR_SetAutoReload(TMR6, cameraControlRuntime.period); - - DDL_TMR_SetCounter(TMR7, 0); - DDL_TMR_SetAutoReload(TMR7, cameraControlRuntime.period); - - // Start two timers as simultaneously as possible - ATOMIC_BLOCK(NVIC_PRIO_TIMER) { - DDL_TMR_EnableCounter(TMR6); - DDL_TMR_EnableCounter(TMR7); - } - - // Enable interrupt generation - DDL_TMR_EnableIT_UPDATE(TMR6); - DDL_TMR_EnableIT_UPDATE(TMR7); - - const uint32_t endTime = millis() + cameraControlConfig()->keyDelayMs + holdDurationMs; - - // Wait to give the camera a chance at registering the key press - while (millis() < endTime); - - // Disable timers and interrupt generation - DDL_TMR_DisableCounter(TMR6); - DDL_TMR_DisableCounter(TMR7); - - TMR6->DIEN = 0; - TMR7->DIEN = 0; - - // Reset to idle state - IOHi(cameraControlRuntime.io); - } -#endif - } else if (CAMERA_CONTROL_MODE_DAC == cameraControlConfig()->mode) { - // @todo not yet implemented - } -} - -#endif // USE_CAMERA_CONTROL diff --git a/src/main/drivers/mcu/at32/camera_control.c b/src/main/drivers/mcu/at32/camera_control.c deleted file mode 100644 index 3930e41eaa..0000000000 --- a/src/main/drivers/mcu/at32/camera_control.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - * This file is part of Cleanflight and Betaflight. - * - * Cleanflight and Betaflight are free software. You can redistribute - * this software and/or modify this software under the terms of the - * GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) - * any later version. - * - * Cleanflight and Betaflight are distributed in the hope that they - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this software. - * - * If not, see . - */ - -#include "platform.h" - -#ifdef USE_CAMERA_CONTROL - -#ifndef CAMERA_CONTROL_PIN -#define CAMERA_CONTROL_PIN NONE -#endif - -#include - -#include "drivers/camera_control_impl.h" -#include "drivers/rcc.h" -#include "drivers/io.h" -#include "drivers/nvic.h" -#include "drivers/pwm_output.h" -#include "drivers/time.h" -#include "pg/pg_ids.h" - -#define CAMERA_CONTROL_PWM_RESOLUTION 128 -#define CAMERA_CONTROL_SOFT_PWM_RESOLUTION 448 - -#ifdef CURRENT_TARGET_CPU_VOLTAGE -#define ADC_VOLTAGE CURRENT_TARGET_CPU_VOLTAGE -#else -#define ADC_VOLTAGE 3.3f -#endif - -#if !defined(STM32F411xE) && !defined(STM32F7) && !defined(STM32H7) && !defined(STM32G4) -#define CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -#include "build/atomic.h" -#endif - -#define CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE -#include "drivers/timer.h" - -#ifdef USE_OSD -#include "osd/osd.h" -#endif - -PG_REGISTER_WITH_RESET_FN(cameraControlConfig_t, cameraControlConfig, PG_CAMERA_CONTROL_CONFIG, 0); - -void pgResetFn_cameraControlConfig(cameraControlConfig_t *cameraControlConfig) -{ - cameraControlConfig->mode = CAMERA_CONTROL_MODE_HARDWARE_PWM; - cameraControlConfig->refVoltage = 330; - cameraControlConfig->keyDelayMs = 180; - cameraControlConfig->internalResistance = 470; - cameraControlConfig->ioTag = IO_TAG(CAMERA_CONTROL_PIN); - cameraControlConfig->inverted = 0; // Output is inverted externally - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_ENTER] = 450; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_LEFT] = 270; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_UP] = 150; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_RIGHT] = 68; - cameraControlConfig->buttonResistanceValues[CAMERA_CONTROL_KEY_DOWN] = 0; -} - -static struct { - bool enabled; - IO_t io; - timerChannel_t channel; - uint32_t period; - uint8_t inverted; -} cameraControlRuntime; - -static uint32_t endTimeMillis; - -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE -static void cameraControlHi(void) -{ - if (cameraControlRuntime.inverted) { - IOLo(cameraControlRuntime.io); - } else { - IOHi(cameraControlRuntime.io); - } -} - -static void cameraControlLo(void) -{ - if (cameraControlRuntime.inverted) { - IOHi(cameraControlRuntime.io); - } else { - IOLo(cameraControlRuntime.io); - } -} - -void TIM6_DAC_IRQHandler(void) -{ - cameraControlHi(); - - tmr_flag_clear(TMR6, TMR_OVF_FLAG); -} - -void TIM7_IRQHandler(void) -{ - cameraControlLo(); - - tmr_flag_clear(TMR7, TMR_OVF_FLAG); - -} -#endif - -void cameraControlInit(void) -{ - if (cameraControlConfig()->ioTag == IO_TAG_NONE) - return; - - cameraControlRuntime.inverted = cameraControlConfig()->inverted; - cameraControlRuntime.io = IOGetByTag(cameraControlConfig()->ioTag); - IOInit(cameraControlRuntime.io, OWNER_CAMERA_CONTROL, 0); - - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE - const timerHardware_t *timerHardware = timerAllocate(cameraControlConfig()->ioTag, OWNER_CAMERA_CONTROL, 0); - - if (!timerHardware) { - return; - } - - IOConfigGPIOAF(cameraControlRuntime.io, IOCFG_AF_PP, timerHardware->alternateFunction); - - pwmOutConfig(&cameraControlRuntime.channel, timerHardware, timerClock(TMR6), CAMERA_CONTROL_PWM_RESOLUTION, 0, cameraControlRuntime.inverted); - - - cameraControlRuntime.period = CAMERA_CONTROL_PWM_RESOLUTION; - *cameraControlRuntime.channel.ccr = cameraControlRuntime.period; - cameraControlRuntime.enabled = true; -#endif - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE - - IOConfigGPIO(cameraControlRuntime.io, IOCFG_OUT_PP); - cameraControlHi(); - - cameraControlRuntime.period = CAMERA_CONTROL_SOFT_PWM_RESOLUTION; - cameraControlRuntime.enabled = true; - - nvic_irq_enable(TMR6_DAC_GLOBAL_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); - RCC_ClockCmd(RCC_APB1(TMR6), ENABLE); - tmr_div_value_set(TMR6, 0); - - nvic_irq_enable(TMR7_GLOBAL_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); - RCC_ClockCmd(RCC_APB1(TMR7), ENABLE); - tmr_div_value_set(TMR7, 0); - -#endif - } else if (CAMERA_CONTROL_MODE_DAC == cameraControlConfig()->mode) { - // @todo not yet implemented - } -} - -void cameraControlProcess(uint32_t currentTimeUs) -{ - if (endTimeMillis && currentTimeUs >= 1000 * endTimeMillis) { - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { - *cameraControlRuntime.channel.ccr = cameraControlRuntime.period; - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { - - } - - endTimeMillis = 0; - } -} - -static float calculateKeyPressVoltage(const cameraControlKey_e key) -{ - const int buttonResistance = cameraControlConfig()->buttonResistanceValues[key] * 100; - return 1.0e-2f * cameraControlConfig()->refVoltage * buttonResistance / (100 * cameraControlConfig()->internalResistance + buttonResistance); -} - -#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) -static float calculatePWMDutyCycle(const cameraControlKey_e key) -{ - const float voltage = calculateKeyPressVoltage(key); - - return voltage / ADC_VOLTAGE; -} -#endif - -void cameraControlKeyPress(cameraControlKey_e key, uint32_t holdDurationMs) -{ - if (!cameraControlRuntime.enabled) - return; - - if (key >= CAMERA_CONTROL_KEYS_COUNT) - return; - -#if defined(CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE) || defined(CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE) - const float dutyCycle = calculatePWMDutyCycle(key); -#else - (void) holdDurationMs; -#endif - -#ifdef USE_OSD - // Force OSD timeout so we are alone on the display. - resumeRefreshAt = 0; -#endif - - if (CAMERA_CONTROL_MODE_HARDWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE - *cameraControlRuntime.channel.ccr = lrintf(dutyCycle * cameraControlRuntime.period); - endTimeMillis = millis() + cameraControlConfig()->keyDelayMs + holdDurationMs; -#endif - } else if (CAMERA_CONTROL_MODE_SOFTWARE_PWM == cameraControlConfig()->mode) { -#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE - const uint32_t hiTime = lrintf(dutyCycle * cameraControlRuntime.period); - - if (0 == hiTime) { - cameraControlLo(); - delay(cameraControlConfig()->keyDelayMs + holdDurationMs); - cameraControlHi(); - } else { - tmr_counter_value_set(TMR6, hiTime); - tmr_period_value_set(TMR6, cameraControlRuntime.period); - - tmr_counter_value_set(TMR7, 0); - tmr_period_value_set(TMR7, cameraControlRuntime.period); - - ATOMIC_BLOCK(NVIC_PRIO_TIMER) { - tmr_counter_enable(TMR6, TRUE); - tmr_counter_enable(TMR7, TRUE); - } - - tmr_interrupt_enable(TMR6, TMR_OVF_INT, TRUE); - tmr_interrupt_enable(TMR7, TMR_OVF_INT, TRUE); - - const uint32_t endTime = millis() + cameraControlConfig()->keyDelayMs + holdDurationMs; - - // Wait to give the camera a chance at registering the key press - while (millis() < endTime); - - // Disable timers and interrupt generation - ATOMIC_BLOCK(NVIC_PRIO_TIMER) { - tmr_counter_enable(TMR6, FALSE); - tmr_counter_enable(TMR7, FALSE); - } - - tmr_interrupt_enable(TMR6, TMR_OVF_INT, FALSE); - tmr_interrupt_enable(TMR7, TMR_OVF_INT, FALSE); - - // Reset to idle state - IOHi(cameraControlRuntime.io); - } -#endif - } else if (CAMERA_CONTROL_MODE_DAC == cameraControlConfig()->mode) { - // @todo not yet implemented - } -} - -#endif diff --git a/src/main/target/APM32F407/target.mk b/src/main/target/APM32F407/target.mk deleted file mode 100644 index 80ac8b3339..0000000000 --- a/src/main/target/APM32F407/target.mk +++ /dev/null @@ -1,3 +0,0 @@ -TARGET_MCU := APM32F405xx -TARGET_MCU_FAMILY := APM32F4 - diff --git a/src/main/drivers/mcu/apm32/adc_apm32f4xx.c b/src/platform/APM32/adc_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/adc_apm32f4xx.c rename to src/platform/APM32/adc_apm32f4xx.c diff --git a/src/main/drivers/mcu/apm32/apm32f4xx_ddl_ex.h b/src/platform/APM32/apm32f4xx_ddl_ex.h similarity index 100% rename from src/main/drivers/mcu/apm32/apm32f4xx_ddl_ex.h rename to src/platform/APM32/apm32f4xx_ddl_ex.h diff --git a/src/main/drivers/mcu/apm32/bus_i2c_apm32.c b/src/platform/APM32/bus_i2c_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/bus_i2c_apm32.c rename to src/platform/APM32/bus_i2c_apm32.c diff --git a/src/main/drivers/mcu/apm32/bus_i2c_apm32_init.c b/src/platform/APM32/bus_i2c_apm32_init.c similarity index 100% rename from src/main/drivers/mcu/apm32/bus_i2c_apm32_init.c rename to src/platform/APM32/bus_i2c_apm32_init.c diff --git a/src/main/drivers/mcu/apm32/bus_spi_apm32.c b/src/platform/APM32/bus_spi_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/bus_spi_apm32.c rename to src/platform/APM32/bus_spi_apm32.c diff --git a/src/platform/APM32/camera_control_apm32.c b/src/platform/APM32/camera_control_apm32.c new file mode 100644 index 0000000000..b34467c5a5 --- /dev/null +++ b/src/platform/APM32/camera_control_apm32.c @@ -0,0 +1,99 @@ +/* + * This file is part of Betaflight. + * + * Betaflight is free software. You can redistribute this software + * and/or modify this software under the terms of the GNU General + * Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later + * version. + * + * Betaflight 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. + * + * You should have received a copy of the GNU General Public + * License along with this software. + * + * If not, see . + */ + +#include "platform.h" + +#ifdef USE_CAMERA_CONTROL + +#include + +#include "drivers/camera_control_impl.h" +#include "drivers/nvic.h" +#include "drivers/pwm_output.h" + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +#include "build/atomic.h" +#endif + +#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE +void cameraControlHardwarePwmInit(timerChannel_t *channel, const timerHardware_t *timerHardware, uint8_t inverted) +{ + pwmOutConfig(channel, timerHardware, timerClock(TMR6), CAMERA_CONTROL_PWM_RESOLUTION, 0, inverted); +} +#endif + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +void TMR6_DAC_IRQHandler(void) +{ + cameraControlHi(); + TMR6->STS = 0; +} + +void TMR7_IRQHandler(void) +{ + cameraControlLo(); + TMR7->STS = 0; +} + +void cameraControlSoftwarePwmInit(void) +{ + DAL_NVIC_SetPriority(TMR6_DAC_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); + DAL_NVIC_EnableIRQ(TMR6_DAC_IRQn); + + DAL_NVIC_SetPriority(TMR7_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); + DAL_NVIC_EnableIRQ(TMR7_IRQn); + + __DAL_RCM_TMR6_CLK_ENABLE(); + __DAL_RCM_TMR7_CLK_ENABLE(); + DDL_TMR_SetPrescaler(TMR6, 0); + DDL_TMR_SetPrescaler(TMR7, 0); +} + +void cameraControlSoftwarePwmEnable(uint32_t hiTime, uint32_t period) +{ + DDL_TMR_SetCounter(TMR6, hiTime); + DDL_TMR_SetAutoReload(TMR6, period); + + DDL_TMR_SetCounter(TMR7, 0); + DDL_TMR_SetAutoReload(TMR7, period); + + // Start two timers as simultaneously as possible + ATOMIC_BLOCK(NVIC_PRIO_TIMER) { + DDL_TMR_EnableCounter(TMR6); + DDL_TMR_EnableCounter(TMR7); + } + + // Enable interrupt generation + DDL_TMR_EnableIT_UPDATE(TMR6); + DDL_TMR_EnableIT_UPDATE(TMR7); +} + +void cameraControlSoftwarePwmDisable(void) +{ + DDL_TMR_DisableCounter(TMR6); + DDL_TMR_DisableCounter(TMR7); + + TMR6->DIEN = 0; + TMR7->DIEN = 0; +} +#endif + +#endif // USE_CAMERA_CONTROL diff --git a/src/main/drivers/mcu/apm32/debug.c b/src/platform/APM32/debug.c similarity index 100% rename from src/main/drivers/mcu/apm32/debug.c rename to src/platform/APM32/debug.c diff --git a/src/main/drivers/mcu/apm32/dma_apm32.h b/src/platform/APM32/dma_apm32.h similarity index 100% rename from src/main/drivers/mcu/apm32/dma_apm32.h rename to src/platform/APM32/dma_apm32.h diff --git a/src/main/drivers/mcu/apm32/dma_apm32f4xx.c b/src/platform/APM32/dma_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/dma_apm32f4xx.c rename to src/platform/APM32/dma_apm32f4xx.c diff --git a/src/main/drivers/mcu/apm32/dma_reqmap_mcu.c b/src/platform/APM32/dma_reqmap_mcu.c similarity index 100% rename from src/main/drivers/mcu/apm32/dma_reqmap_mcu.c rename to src/platform/APM32/dma_reqmap_mcu.c diff --git a/src/main/drivers/mcu/apm32/dma_reqmap_mcu.h b/src/platform/APM32/dma_reqmap_mcu.h similarity index 100% rename from src/main/drivers/mcu/apm32/dma_reqmap_mcu.h rename to src/platform/APM32/dma_reqmap_mcu.h diff --git a/src/main/drivers/mcu/apm32/dshot_bitbang.c b/src/platform/APM32/dshot_bitbang.c similarity index 100% rename from src/main/drivers/mcu/apm32/dshot_bitbang.c rename to src/platform/APM32/dshot_bitbang.c diff --git a/src/main/drivers/mcu/apm32/dshot_bitbang_ddl.c b/src/platform/APM32/dshot_bitbang_ddl.c similarity index 100% rename from src/main/drivers/mcu/apm32/dshot_bitbang_ddl.c rename to src/platform/APM32/dshot_bitbang_ddl.c diff --git a/src/main/drivers/mcu/apm32/eint_apm32.c b/src/platform/APM32/eint_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/eint_apm32.c rename to src/platform/APM32/eint_apm32.c diff --git a/src/main/drivers/mcu/apm32/io_apm32.c b/src/platform/APM32/io_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/io_apm32.c rename to src/platform/APM32/io_apm32.c diff --git a/src/main/drivers/mcu/apm32/light_ws2811strip_apm32.c b/src/platform/APM32/light_ws2811strip_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/light_ws2811strip_apm32.c rename to src/platform/APM32/light_ws2811strip_apm32.c diff --git a/src/link/apm32_flash_f405.ld b/src/platform/APM32/link/apm32_flash_f405.ld similarity index 96% rename from src/link/apm32_flash_f405.ld rename to src/platform/APM32/link/apm32_flash_f405.ld index 121c7e8da9..2a03fd2c04 100644 --- a/src/link/apm32_flash_f405.ld +++ b/src/platform/APM32/link/apm32_flash_f405.ld @@ -37,4 +37,4 @@ REGION_ALIAS("VECTAB", RAM) REGION_ALIAS("MOVABLE_FLASH", FLASH1) -INCLUDE "stm32_flash_f4_split.ld" +INCLUDE "../../STM32/link/stm32_flash_f4_split.ld" diff --git a/src/link/apm32_flash_f407.ld b/src/platform/APM32/link/apm32_flash_f407.ld similarity index 96% rename from src/link/apm32_flash_f407.ld rename to src/platform/APM32/link/apm32_flash_f407.ld index 3e4ed3b4ca..d0fa8fef96 100644 --- a/src/link/apm32_flash_f407.ld +++ b/src/platform/APM32/link/apm32_flash_f407.ld @@ -37,4 +37,4 @@ REGION_ALIAS("VECTAB", RAM) REGION_ALIAS("MOVABLE_FLASH", FLASH1) -INCLUDE "stm32_flash_f4_split.ld" +INCLUDE "../../STM32/link/stm32_flash_f4_split.ld" diff --git a/mk/mcu/APM32F4.mk b/src/platform/APM32/mk/APM32F4.mk similarity index 72% rename from mk/mcu/APM32F4.mk rename to src/platform/APM32/mk/APM32F4.mk index ce435a81cb..e5957025b5 100644 --- a/mk/mcu/APM32F4.mk +++ b/src/platform/APM32/mk/APM32F4.mk @@ -111,8 +111,8 @@ DEVICE_STDPERIPH_SRC := $(STDPERIPH_SRC) \ VPATH := $(VPATH):$(ROOT)/lib/main/APM32F4/Libraries/Device/Geehy/APM32F4xx INCLUDE_DIRS := $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/apm32 \ - $(SRC_DIR)/drivers/mcu/apm32 + $(TARGET_PLATFORM_DIR)/startup \ + $(TARGET_PLATFORM_DIR) CMSIS_SRC := INCLUDE_DIRS := $(INCLUDE_DIRS) \ @@ -121,9 +121,9 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \ $(USBCDC_DIR)/Inc \ $(USBMSC_DIR)/Inc \ $(CMSIS_DIR)/Geehy/APM32F4xx/Include \ - $(SRC_DIR)/drivers/mcu/apm32/usb/vcp \ - $(SRC_DIR)/drivers/mcu/apm32/usb/msc \ - $(SRC_DIR)/drivers/mcu/apm32/usb \ + $(TARGET_PLATFORM_DIR)/usb/vcp \ + $(TARGET_PLATFORM_DIR)/usb/msc \ + $(TARGET_PLATFORM_DIR)/usb \ $(ROOT)/lib/main/CMSIS/Core/Include \ $(SRC_DIR)/msc @@ -135,59 +135,59 @@ DEVICE_FLAGS = -DUSE_DAL_DRIVER -DHSE_VALUE=$(HSE_VALUE) -DAPM32 ifeq ($(TARGET_MCU),APM32F405xx) DEVICE_FLAGS += -DAPM32F405xx LD_SCRIPT = $(LINKER_DIR)/apm32_flash_f405.ld -STARTUP_SRC = apm32/startup_apm32f405xx.S +STARTUP_SRC = startup/startup_apm32f405xx.S MCU_FLASH_SIZE := 1024 else ifeq ($(TARGET_MCU),APM32F407xx) DEVICE_FLAGS += -DAPM32F407xx LD_SCRIPT = $(LINKER_DIR)/apm32_flash_f407.ld -STARTUP_SRC = apm32/startup_apm32f407xx.S +STARTUP_SRC = startup/startup_apm32f407xx.S MCU_FLASH_SIZE := 1024 else -$(error TARGET_MCU [$(TARGET_MCU] is not supported) +$(error TARGET_MCU [$(TARGET_MCU)] is not supported) endif MCU_COMMON_SRC = \ - startup/apm32/system_apm32f4xx.c \ + startup/system_apm32f4xx.c \ drivers/inverter.c \ drivers/dshot_bitbang_decode.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/apm32/bus_spi_apm32.c \ - drivers/mcu/apm32/bus_i2c_apm32.c \ - drivers/mcu/apm32/bus_i2c_apm32_init.c \ - drivers/mcu/apm32/camera_control.c \ - drivers/mcu/apm32/debug.c \ - drivers/mcu/apm32/dma_reqmap_mcu.c \ - drivers/mcu/apm32/dshot_bitbang.c \ - drivers/mcu/apm32/dshot_bitbang_ddl.c \ - drivers/mcu/apm32/eint_apm32.c \ - drivers/mcu/apm32/io_apm32.c \ - drivers/mcu/apm32/light_ws2811strip_apm32.c \ - drivers/mcu/apm32/persistent_apm32.c \ - drivers/mcu/apm32/pwm_output_apm32.c \ - drivers/mcu/apm32/pwm_output_dshot_apm32.c \ - drivers/mcu/apm32/rcm_apm32.c \ - drivers/mcu/apm32/serial_uart_apm32.c \ - drivers/mcu/apm32/timer_apm32.c \ - drivers/mcu/apm32/transponder_ir_io_apm32.c \ - drivers/mcu/apm32/timer_apm32f4xx.c \ - drivers/mcu/apm32/adc_apm32f4xx.c \ - drivers/mcu/apm32/dma_apm32f4xx.c \ - drivers/mcu/apm32/serial_uart_apm32f4xx.c \ - drivers/mcu/apm32/system_apm32f4xx.c + bus_spi_apm32.c \ + bus_i2c_apm32.c \ + bus_i2c_apm32_init.c \ + camera_control_apm32.c \ + debug.c \ + dma_reqmap_mcu.c \ + dshot_bitbang.c \ + dshot_bitbang_ddl.c \ + eint_apm32.c \ + io_apm32.c \ + light_ws2811strip_apm32.c \ + persistent_apm32.c \ + pwm_output_apm32.c \ + pwm_output_dshot_apm32.c \ + rcm_apm32.c \ + serial_uart_apm32.c \ + timer_apm32.c \ + transponder_ir_io_apm32.c \ + timer_apm32f4xx.c \ + adc_apm32f4xx.c \ + dma_apm32f4xx.c \ + serial_uart_apm32f4xx.c \ + system_apm32f4xx.c VCP_SRC = \ - drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.c \ - drivers/mcu/apm32/usb/usbd_board_apm32f4.c \ - drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.c \ - drivers/mcu/apm32/usb/vcp/serial_usb_vcp.c \ + usb/vcp/usbd_cdc_descriptor.c \ + usb/usbd_board_apm32f4.c \ + usb/vcp/usbd_cdc_vcp.c \ + usb/vcp/serial_usb_vcp.c \ drivers/usb_io.c MSC_SRC = \ drivers/usb_msc_common.c \ - drivers/mcu/apm32/usb/msc/usb_msc_apm32f4xx.c \ - drivers/mcu/apm32/usb/msc/usbd_memory.c \ - drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.c \ + usb/msc/usb_msc_apm32f4xx.c \ + usb/msc/usbd_memory.c \ + usb/msc/usbd_msc_descriptor.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ msc/emfat.c \ diff --git a/src/main/drivers/mcu/apm32/persistent_apm32.c b/src/platform/APM32/persistent_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/persistent_apm32.c rename to src/platform/APM32/persistent_apm32.c diff --git a/src/main/drivers/mcu/apm32/platform_mcu.h b/src/platform/APM32/platform_mcu.h similarity index 100% rename from src/main/drivers/mcu/apm32/platform_mcu.h rename to src/platform/APM32/platform_mcu.h diff --git a/src/main/drivers/mcu/apm32/pwm_output_apm32.c b/src/platform/APM32/pwm_output_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/pwm_output_apm32.c rename to src/platform/APM32/pwm_output_apm32.c diff --git a/src/main/drivers/mcu/apm32/pwm_output_dshot_apm32.c b/src/platform/APM32/pwm_output_dshot_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/pwm_output_dshot_apm32.c rename to src/platform/APM32/pwm_output_dshot_apm32.c diff --git a/src/main/drivers/mcu/apm32/rcm_apm32.c b/src/platform/APM32/rcm_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/rcm_apm32.c rename to src/platform/APM32/rcm_apm32.c diff --git a/src/main/drivers/mcu/apm32/serial_uart_apm32.c b/src/platform/APM32/serial_uart_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/serial_uart_apm32.c rename to src/platform/APM32/serial_uart_apm32.c diff --git a/src/main/drivers/mcu/apm32/serial_uart_apm32f4xx.c b/src/platform/APM32/serial_uart_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/serial_uart_apm32f4xx.c rename to src/platform/APM32/serial_uart_apm32f4xx.c diff --git a/src/main/startup/apm32/apm32f4xx_dal_cfg.h b/src/platform/APM32/startup/apm32f4xx_dal_cfg.h similarity index 100% rename from src/main/startup/apm32/apm32f4xx_dal_cfg.h rename to src/platform/APM32/startup/apm32f4xx_dal_cfg.h diff --git a/src/main/startup/apm32/startup_apm32f405xx.S b/src/platform/APM32/startup/startup_apm32f405xx.S similarity index 100% rename from src/main/startup/apm32/startup_apm32f405xx.S rename to src/platform/APM32/startup/startup_apm32f405xx.S diff --git a/src/main/startup/apm32/startup_apm32f407xx.S b/src/platform/APM32/startup/startup_apm32f407xx.S similarity index 100% rename from src/main/startup/apm32/startup_apm32f407xx.S rename to src/platform/APM32/startup/startup_apm32f407xx.S diff --git a/src/main/startup/apm32/system_apm32f4xx.c b/src/platform/APM32/startup/system_apm32f4xx.c similarity index 100% rename from src/main/startup/apm32/system_apm32f4xx.c rename to src/platform/APM32/startup/system_apm32f4xx.c diff --git a/src/main/startup/apm32/system_apm32f4xx.h b/src/platform/APM32/startup/system_apm32f4xx.h similarity index 100% rename from src/main/startup/apm32/system_apm32f4xx.h rename to src/platform/APM32/startup/system_apm32f4xx.h diff --git a/src/main/drivers/mcu/apm32/system_apm32f4xx.c b/src/platform/APM32/system_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/system_apm32f4xx.c rename to src/platform/APM32/system_apm32f4xx.c diff --git a/src/main/target/APM32F405/target.h b/src/platform/APM32/target/APM32F405/target.h similarity index 100% rename from src/main/target/APM32F405/target.h rename to src/platform/APM32/target/APM32F405/target.h diff --git a/src/platform/APM32/target/APM32F405/target.mk b/src/platform/APM32/target/APM32F405/target.mk new file mode 100644 index 0000000000..e79370e619 --- /dev/null +++ b/src/platform/APM32/target/APM32F405/target.mk @@ -0,0 +1,2 @@ +TARGET_MCU := APM32F405xx +TARGET_MCU_FAMILY := APM32F4 diff --git a/src/main/target/APM32F407/target.h b/src/platform/APM32/target/APM32F407/target.h similarity index 100% rename from src/main/target/APM32F407/target.h rename to src/platform/APM32/target/APM32F407/target.h diff --git a/src/main/target/APM32F405/target.mk b/src/platform/APM32/target/APM32F407/target.mk similarity index 100% rename from src/main/target/APM32F405/target.mk rename to src/platform/APM32/target/APM32F407/target.mk diff --git a/src/main/drivers/mcu/apm32/timer_apm32.c b/src/platform/APM32/timer_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/timer_apm32.c rename to src/platform/APM32/timer_apm32.c diff --git a/src/main/drivers/mcu/apm32/timer_apm32f4xx.c b/src/platform/APM32/timer_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/timer_apm32f4xx.c rename to src/platform/APM32/timer_apm32f4xx.c diff --git a/src/main/drivers/mcu/apm32/timer_def.h b/src/platform/APM32/timer_def.h similarity index 100% rename from src/main/drivers/mcu/apm32/timer_def.h rename to src/platform/APM32/timer_def.h diff --git a/src/main/drivers/mcu/apm32/transponder_ir_io_apm32.c b/src/platform/APM32/transponder_ir_io_apm32.c similarity index 100% rename from src/main/drivers/mcu/apm32/transponder_ir_io_apm32.c rename to src/platform/APM32/transponder_ir_io_apm32.c diff --git a/src/main/drivers/mcu/apm32/usb/msc/usb_msc_apm32f4xx.c b/src/platform/APM32/usb/msc/usb_msc_apm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/msc/usb_msc_apm32f4xx.c rename to src/platform/APM32/usb/msc/usb_msc_apm32f4xx.c diff --git a/src/main/drivers/mcu/apm32/usb/msc/usbd_memory.c b/src/platform/APM32/usb/msc/usbd_memory.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/msc/usbd_memory.c rename to src/platform/APM32/usb/msc/usbd_memory.c diff --git a/src/main/drivers/mcu/apm32/usb/msc/usbd_memory.h b/src/platform/APM32/usb/msc/usbd_memory.h similarity index 100% rename from src/main/drivers/mcu/apm32/usb/msc/usbd_memory.h rename to src/platform/APM32/usb/msc/usbd_memory.h diff --git a/src/main/drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.c b/src/platform/APM32/usb/msc/usbd_msc_descriptor.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.c rename to src/platform/APM32/usb/msc/usbd_msc_descriptor.c diff --git a/src/main/drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.h b/src/platform/APM32/usb/msc/usbd_msc_descriptor.h similarity index 100% rename from src/main/drivers/mcu/apm32/usb/msc/usbd_msc_descriptor.h rename to src/platform/APM32/usb/msc/usbd_msc_descriptor.h diff --git a/src/main/drivers/mcu/apm32/usb/usbd_board.h b/src/platform/APM32/usb/usbd_board.h similarity index 100% rename from src/main/drivers/mcu/apm32/usb/usbd_board.h rename to src/platform/APM32/usb/usbd_board.h diff --git a/src/main/drivers/mcu/apm32/usb/usbd_board_apm32f4.c b/src/platform/APM32/usb/usbd_board_apm32f4.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/usbd_board_apm32f4.c rename to src/platform/APM32/usb/usbd_board_apm32f4.c diff --git a/src/main/drivers/mcu/apm32/usb/vcp/serial_usb_vcp.c b/src/platform/APM32/usb/vcp/serial_usb_vcp.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/vcp/serial_usb_vcp.c rename to src/platform/APM32/usb/vcp/serial_usb_vcp.c diff --git a/src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.c b/src/platform/APM32/usb/vcp/usbd_cdc_descriptor.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.c rename to src/platform/APM32/usb/vcp/usbd_cdc_descriptor.c diff --git a/src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.h b/src/platform/APM32/usb/vcp/usbd_cdc_descriptor.h similarity index 100% rename from src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_descriptor.h rename to src/platform/APM32/usb/vcp/usbd_cdc_descriptor.h diff --git a/src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.c b/src/platform/APM32/usb/vcp/usbd_cdc_vcp.c similarity index 100% rename from src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.c rename to src/platform/APM32/usb/vcp/usbd_cdc_vcp.c diff --git a/src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.h b/src/platform/APM32/usb/vcp/usbd_cdc_vcp.h similarity index 100% rename from src/main/drivers/mcu/apm32/usb/vcp/usbd_cdc_vcp.h rename to src/platform/APM32/usb/vcp/usbd_cdc_vcp.h diff --git a/src/main/drivers/mcu/at32/adc_at32f43x.c b/src/platform/AT32/adc_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/adc_at32f43x.c rename to src/platform/AT32/adc_at32f43x.c diff --git a/src/main/drivers/mcu/at32/bus_i2c_atbsp.c b/src/platform/AT32/bus_i2c_atbsp.c similarity index 100% rename from src/main/drivers/mcu/at32/bus_i2c_atbsp.c rename to src/platform/AT32/bus_i2c_atbsp.c diff --git a/src/main/drivers/mcu/at32/bus_i2c_atbsp_init.c b/src/platform/AT32/bus_i2c_atbsp_init.c similarity index 100% rename from src/main/drivers/mcu/at32/bus_i2c_atbsp_init.c rename to src/platform/AT32/bus_i2c_atbsp_init.c diff --git a/src/main/drivers/mcu/at32/bus_spi_at32bsp.c b/src/platform/AT32/bus_spi_at32bsp.c similarity index 100% rename from src/main/drivers/mcu/at32/bus_spi_at32bsp.c rename to src/platform/AT32/bus_spi_at32bsp.c diff --git a/src/platform/AT32/camera_control_at32.c b/src/platform/AT32/camera_control_at32.c new file mode 100644 index 0000000000..12a69d18ca --- /dev/null +++ b/src/platform/AT32/camera_control_at32.c @@ -0,0 +1,97 @@ +/* + * This file is part of Betaflight. + * + * Betaflight is free software. You can redistribute this software + * and/or modify this software under the terms of the GNU General + * Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later + * version. + * + * Betaflight 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. + * + * You should have received a copy of the GNU General Public + * License along with this software. + * + * If not, see . + */ + +#include "platform.h" + +#ifdef USE_CAMERA_CONTROL + +#include + +#include "drivers/camera_control_impl.h" +#include "drivers/nvic.h" +#include "drivers/pwm_output.h" +#include "drivers/rcc.h" + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +#include "build/atomic.h" +#endif + +#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE +void cameraControlHardwarePwmInit(timerChannel_t *channel, const timerHardware_t *timerHardware, uint8_t inverted) +{ + pwmOutConfig(channel, timerHardware, timerClock(TMR6), CAMERA_CONTROL_PWM_RESOLUTION, 0, inverted); +} +#endif + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +void TIM6_DAC_IRQHandler(void) +{ + cameraControlHi(); + tmr_flag_clear(TMR6, TMR_OVF_FLAG); +} + +void TIM7_IRQHandler(void) +{ + cameraControlLo(); + tmr_flag_clear(TMR7, TMR_OVF_FLAG); +} + +void cameraControlSoftwarePwmInit(void) +{ + nvic_irq_enable(TMR6_DAC_GLOBAL_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); + RCC_ClockCmd(RCC_APB1(TMR6), ENABLE); + tmr_div_value_set(TMR6, 0); + + nvic_irq_enable(TMR7_GLOBAL_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER)); + RCC_ClockCmd(RCC_APB1(TMR7), ENABLE); + tmr_div_value_set(TMR7, 0); +} + +void cameraControlSoftwarePwmEnable(uint32_t hiTime, uint32_t period) +{ + tmr_counter_value_set(TMR6, hiTime); + tmr_period_value_set(TMR6, period); + + tmr_counter_value_set(TMR7, 0); + tmr_period_value_set(TMR7, period); + + ATOMIC_BLOCK(NVIC_PRIO_TIMER) { + tmr_counter_enable(TMR6, TRUE); + tmr_counter_enable(TMR7, TRUE); + } + + tmr_interrupt_enable(TMR6, TMR_OVF_INT, TRUE); + tmr_interrupt_enable(TMR7, TMR_OVF_INT, TRUE); +} + +void cameraControlSoftwarePwmDisable(void) +{ + ATOMIC_BLOCK(NVIC_PRIO_TIMER) { + tmr_counter_enable(TMR6, FALSE); + tmr_counter_enable(TMR7, FALSE); + } + + tmr_interrupt_enable(TMR6, TMR_OVF_INT, FALSE); + tmr_interrupt_enable(TMR7, TMR_OVF_INT, FALSE); +} +#endif + +#endif // USE_CAMERA_CONTROL diff --git a/src/main/drivers/mcu/at32/debug.c b/src/platform/AT32/debug.c similarity index 100% rename from src/main/drivers/mcu/at32/debug.c rename to src/platform/AT32/debug.c diff --git a/src/main/drivers/mcu/at32/dma_at32f43x.c b/src/platform/AT32/dma_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/dma_at32f43x.c rename to src/platform/AT32/dma_at32f43x.c diff --git a/src/main/drivers/mcu/at32/dma_atbsp.h b/src/platform/AT32/dma_atbsp.h similarity index 100% rename from src/main/drivers/mcu/at32/dma_atbsp.h rename to src/platform/AT32/dma_atbsp.h diff --git a/src/main/drivers/mcu/at32/dma_reqmap_mcu.c b/src/platform/AT32/dma_reqmap_mcu.c similarity index 100% rename from src/main/drivers/mcu/at32/dma_reqmap_mcu.c rename to src/platform/AT32/dma_reqmap_mcu.c diff --git a/src/main/drivers/mcu/at32/dma_reqmap_mcu.h b/src/platform/AT32/dma_reqmap_mcu.h similarity index 100% rename from src/main/drivers/mcu/at32/dma_reqmap_mcu.h rename to src/platform/AT32/dma_reqmap_mcu.h diff --git a/src/main/drivers/mcu/at32/dshot_bitbang.c b/src/platform/AT32/dshot_bitbang.c similarity index 100% rename from src/main/drivers/mcu/at32/dshot_bitbang.c rename to src/platform/AT32/dshot_bitbang.c diff --git a/src/main/drivers/mcu/at32/dshot_bitbang_stdperiph.c b/src/platform/AT32/dshot_bitbang_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/at32/dshot_bitbang_stdperiph.c rename to src/platform/AT32/dshot_bitbang_stdperiph.c diff --git a/src/main/drivers/mcu/at32/exti_at32.c b/src/platform/AT32/exti_at32.c similarity index 100% rename from src/main/drivers/mcu/at32/exti_at32.c rename to src/platform/AT32/exti_at32.c diff --git a/src/main/drivers/mcu/at32/io_at32.c b/src/platform/AT32/io_at32.c similarity index 100% rename from src/main/drivers/mcu/at32/io_at32.c rename to src/platform/AT32/io_at32.c diff --git a/src/main/drivers/mcu/at32/light_ws2811strip_at32f43x.c b/src/platform/AT32/light_ws2811strip_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/light_ws2811strip_at32f43x.c rename to src/platform/AT32/light_ws2811strip_at32f43x.c diff --git a/src/link/at32_flash_f43xg.ld b/src/platform/AT32/link/at32_flash_f43xg.ld similarity index 100% rename from src/link/at32_flash_f43xg.ld rename to src/platform/AT32/link/at32_flash_f43xg.ld diff --git a/src/link/at32_flash_f43xm.ld b/src/platform/AT32/link/at32_flash_f43xm.ld similarity index 100% rename from src/link/at32_flash_f43xm.ld rename to src/platform/AT32/link/at32_flash_f43xm.ld diff --git a/src/link/at32_flash_f4_split.ld b/src/platform/AT32/link/at32_flash_f4_split.ld similarity index 100% rename from src/link/at32_flash_f4_split.ld rename to src/platform/AT32/link/at32_flash_f4_split.ld diff --git a/mk/mcu/AT32F4.mk b/src/platform/AT32/mk/AT32F4.mk similarity index 67% rename from mk/mcu/AT32F4.mk rename to src/platform/AT32/mk/AT32F4.mk index bee1944644..6c6e142469 100644 --- a/mk/mcu/AT32F4.mk +++ b/src/platform/AT32/mk/AT32F4.mk @@ -45,7 +45,7 @@ STDPERIPH_SRC = \ usbd_class/msc/msc_class.c \ usbd_class/msc/msc_desc.c -STARTUP_SRC = at32/startup_at32f435_437.s +STARTUP_SRC = startup/startup_at32f435_437.s VPATH := $(VPATH):$(ROOT)/lib/main/AT32F43x/cmsis/cm4/core_support:$(STDPERIPH_DIR)/src:$(MIDDLEWARES_DIR):$(SRC_DIR)/startup/at32 @@ -61,9 +61,8 @@ VCP_INCLUDES = \ DEVICE_STDPERIPH_SRC = $(STDPERIPH_SRC) INCLUDE_DIRS := $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/at32 \ - $(SRC_DIR)/drivers \ - $(SRC_DIR)/drivers/mcu/at32 \ + $(TARGET_PLATFORM_DIR)/startup \ + $(TARGET_PLATFORM_DIR) \ $(STDPERIPH_DIR)/inc \ $(CMSIS_DIR)/cm4/core_support \ $(CMSIS_DIR)/cm4 \ @@ -81,32 +80,32 @@ ARCH_FLAGS = -std=c99 -mthumb -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi= DEVICE_FLAGS += -DUSE_ATBSP_DRIVER -DAT32F43x -DHSE_VALUE=$(HSE_VALUE) -DAT32 -DUSE_OTG_HOST_MODE MCU_COMMON_SRC = \ - startup/at32/at32f435_437_clock.c \ - startup/at32/system_at32f435_437.c \ - drivers/mcu/at32/adc_at32f43x.c \ - drivers/mcu/at32/bus_i2c_atbsp.c \ - drivers/mcu/at32/bus_i2c_atbsp_init.c \ - drivers/mcu/at32/bus_spi_at32bsp.c \ - drivers/mcu/at32/camera_control.c \ - drivers/mcu/at32/debug.c \ - drivers/mcu/at32/dma_at32f43x.c \ - drivers/mcu/at32/dma_reqmap_mcu.c \ - drivers/mcu/at32/dshot_bitbang.c \ - drivers/mcu/at32/dshot_bitbang_stdperiph.c \ - drivers/mcu/at32/exti_at32.c \ - drivers/mcu/at32/io_at32.c \ - drivers/mcu/at32/light_ws2811strip_at32f43x.c \ - drivers/mcu/at32/persistent_at32bsp.c \ - drivers/mcu/at32/pwm_output_at32bsp.c \ - drivers/mcu/at32/pwm_output_dshot.c \ - drivers/mcu/at32/rcc_at32.c \ - drivers/mcu/at32/serial_uart_at32bsp.c \ - drivers/mcu/at32/serial_uart_at32f43x.c \ - drivers/mcu/at32/serial_usb_vcp_at32f4.c \ - drivers/mcu/at32/system_at32f43x.c \ - drivers/mcu/at32/timer_at32bsp.c \ - drivers/mcu/at32/timer_at32f43x.c \ - drivers/mcu/at32/usb_msc_at32f43x.c \ + startup/at32f435_437_clock.c \ + startup/system_at32f435_437.c \ + adc_at32f43x.c \ + bus_i2c_atbsp.c \ + bus_i2c_atbsp_init.c \ + bus_spi_at32bsp.c \ + camera_control_at32.c \ + debug.c \ + dma_at32f43x.c \ + dma_reqmap_mcu.c \ + dshot_bitbang.c \ + dshot_bitbang_stdperiph.c \ + exti_at32.c \ + io_at32.c \ + light_ws2811strip_at32f43x.c \ + persistent_at32bsp.c \ + pwm_output_at32bsp.c \ + pwm_output_dshot.c \ + rcc_at32.c \ + serial_uart_at32bsp.c \ + serial_uart_at32f43x.c \ + serial_usb_vcp_at32f4.c \ + system_at32f43x.c \ + timer_at32bsp.c \ + timer_at32f43x.c \ + usb_msc_at32f43x.c \ drivers/accgyro/accgyro_mpu.c \ drivers/dshot_bitbang_decode.c \ drivers/inverter.c \ diff --git a/src/main/drivers/mcu/at32/msc_desc.h b/src/platform/AT32/msc_desc.h similarity index 100% rename from src/main/drivers/mcu/at32/msc_desc.h rename to src/platform/AT32/msc_desc.h diff --git a/src/main/drivers/mcu/at32/msc_diskio.h b/src/platform/AT32/msc_diskio.h similarity index 100% rename from src/main/drivers/mcu/at32/msc_diskio.h rename to src/platform/AT32/msc_diskio.h diff --git a/src/main/drivers/mcu/at32/persistent_at32bsp.c b/src/platform/AT32/persistent_at32bsp.c similarity index 100% rename from src/main/drivers/mcu/at32/persistent_at32bsp.c rename to src/platform/AT32/persistent_at32bsp.c diff --git a/src/main/drivers/mcu/at32/platform_mcu.h b/src/platform/AT32/platform_mcu.h similarity index 100% rename from src/main/drivers/mcu/at32/platform_mcu.h rename to src/platform/AT32/platform_mcu.h diff --git a/src/main/drivers/mcu/at32/pwm_output_at32bsp.c b/src/platform/AT32/pwm_output_at32bsp.c similarity index 100% rename from src/main/drivers/mcu/at32/pwm_output_at32bsp.c rename to src/platform/AT32/pwm_output_at32bsp.c diff --git a/src/main/drivers/mcu/at32/pwm_output_dshot.c b/src/platform/AT32/pwm_output_dshot.c similarity index 100% rename from src/main/drivers/mcu/at32/pwm_output_dshot.c rename to src/platform/AT32/pwm_output_dshot.c diff --git a/src/main/drivers/mcu/at32/rcc_at32.c b/src/platform/AT32/rcc_at32.c similarity index 100% rename from src/main/drivers/mcu/at32/rcc_at32.c rename to src/platform/AT32/rcc_at32.c diff --git a/src/main/drivers/mcu/at32/serial_uart_at32bsp.c b/src/platform/AT32/serial_uart_at32bsp.c similarity index 100% rename from src/main/drivers/mcu/at32/serial_uart_at32bsp.c rename to src/platform/AT32/serial_uart_at32bsp.c diff --git a/src/main/drivers/mcu/at32/serial_uart_at32f43x.c b/src/platform/AT32/serial_uart_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/serial_uart_at32f43x.c rename to src/platform/AT32/serial_uart_at32f43x.c diff --git a/src/main/drivers/mcu/at32/serial_usb_vcp_at32f4.c b/src/platform/AT32/serial_usb_vcp_at32f4.c similarity index 100% rename from src/main/drivers/mcu/at32/serial_usb_vcp_at32f4.c rename to src/platform/AT32/serial_usb_vcp_at32f4.c diff --git a/src/main/startup/at32/at32f435_437.h b/src/platform/AT32/startup/at32f435_437.h similarity index 100% rename from src/main/startup/at32/at32f435_437.h rename to src/platform/AT32/startup/at32f435_437.h diff --git a/src/main/startup/at32/at32f435_437_clock.c b/src/platform/AT32/startup/at32f435_437_clock.c similarity index 100% rename from src/main/startup/at32/at32f435_437_clock.c rename to src/platform/AT32/startup/at32f435_437_clock.c diff --git a/src/main/startup/at32/at32f435_437_clock.h b/src/platform/AT32/startup/at32f435_437_clock.h similarity index 100% rename from src/main/startup/at32/at32f435_437_clock.h rename to src/platform/AT32/startup/at32f435_437_clock.h diff --git a/src/main/startup/at32/at32f435_437_conf.h b/src/platform/AT32/startup/at32f435_437_conf.h similarity index 100% rename from src/main/startup/at32/at32f435_437_conf.h rename to src/platform/AT32/startup/at32f435_437_conf.h diff --git a/src/main/startup/at32/startup_at32f435_437.s b/src/platform/AT32/startup/startup_at32f435_437.s similarity index 100% rename from src/main/startup/at32/startup_at32f435_437.s rename to src/platform/AT32/startup/startup_at32f435_437.s diff --git a/src/main/startup/at32/system_at32f435_437.c b/src/platform/AT32/startup/system_at32f435_437.c similarity index 100% rename from src/main/startup/at32/system_at32f435_437.c rename to src/platform/AT32/startup/system_at32f435_437.c diff --git a/src/main/startup/at32/system_at32f435_437.h b/src/platform/AT32/startup/system_at32f435_437.h similarity index 100% rename from src/main/startup/at32/system_at32f435_437.h rename to src/platform/AT32/startup/system_at32f435_437.h diff --git a/src/main/drivers/mcu/at32/system_at32f43x.c b/src/platform/AT32/system_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/system_at32f43x.c rename to src/platform/AT32/system_at32f43x.c diff --git a/src/main/target/AT32F435G/target.h b/src/platform/AT32/target/AT32F435G/target.h similarity index 100% rename from src/main/target/AT32F435G/target.h rename to src/platform/AT32/target/AT32F435G/target.h diff --git a/src/main/target/AT32F435G/target.mk b/src/platform/AT32/target/AT32F435G/target.mk similarity index 100% rename from src/main/target/AT32F435G/target.mk rename to src/platform/AT32/target/AT32F435G/target.mk diff --git a/src/main/target/AT32F435M/target.h b/src/platform/AT32/target/AT32F435M/target.h similarity index 100% rename from src/main/target/AT32F435M/target.h rename to src/platform/AT32/target/AT32F435M/target.h diff --git a/src/main/target/AT32F435M/target.mk b/src/platform/AT32/target/AT32F435M/target.mk similarity index 100% rename from src/main/target/AT32F435M/target.mk rename to src/platform/AT32/target/AT32F435M/target.mk diff --git a/src/main/drivers/mcu/at32/timer_at32bsp.c b/src/platform/AT32/timer_at32bsp.c similarity index 100% rename from src/main/drivers/mcu/at32/timer_at32bsp.c rename to src/platform/AT32/timer_at32bsp.c diff --git a/src/main/drivers/mcu/at32/timer_at32f43x.c b/src/platform/AT32/timer_at32f43x.c similarity index 100% rename from src/main/drivers/mcu/at32/timer_at32f43x.c rename to src/platform/AT32/timer_at32f43x.c diff --git a/src/main/drivers/mcu/at32/timer_def.h b/src/platform/AT32/timer_def.h similarity index 100% rename from src/main/drivers/mcu/at32/timer_def.h rename to src/platform/AT32/timer_def.h diff --git a/src/main/drivers/mcu/at32/usb_conf.h b/src/platform/AT32/usb_conf.h similarity index 100% rename from src/main/drivers/mcu/at32/usb_conf.h rename to src/platform/AT32/usb_conf.h diff --git a/src/main/drivers/mcu/at32/usb_msc_at32f43x.c b/src/platform/AT32/usb_msc_at32f43x.c similarity index 99% rename from src/main/drivers/mcu/at32/usb_msc_at32f43x.c rename to src/platform/AT32/usb_msc_at32f43x.c index e4ee3d24d0..6a06dd8c16 100644 --- a/src/main/drivers/mcu/at32/usb_msc_at32f43x.c +++ b/src/platform/AT32/usb_msc_at32f43x.c @@ -55,7 +55,7 @@ #include "msc_class.h" #include "msc_desc.h" -#include "usb_io.h" +#include "drivers/usb_io.h" extern otg_core_type otg_core_struct; diff --git a/src/main/drivers/mcu/at32/usbd_msc_mem.h b/src/platform/AT32/usbd_msc_mem.h similarity index 100% rename from src/main/drivers/mcu/at32/usbd_msc_mem.h rename to src/platform/AT32/usbd_msc_mem.h diff --git a/src/main/target/SITL/dma_reqmap_mcu.h b/src/platform/SITL/dma_reqmap_mcu.h similarity index 100% rename from src/main/target/SITL/dma_reqmap_mcu.h rename to src/platform/SITL/dma_reqmap_mcu.h diff --git a/src/main/target/SITL/pg.ld b/src/platform/SITL/link/sitl.ld similarity index 100% rename from src/main/target/SITL/pg.ld rename to src/platform/SITL/link/sitl.ld diff --git a/mk/mcu/SITL.mk b/src/platform/SITL/mk/SITL.mk similarity index 89% rename from mk/mcu/SITL.mk rename to src/platform/SITL/mk/SITL.mk index c8dcd76f33..b922ac6faa 100644 --- a/mk/mcu/SITL.mk +++ b/src/platform/SITL/mk/SITL.mk @@ -1,13 +1,16 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \ + $(TARGET_PLATFORM_DIR) \ $(ROOT)/lib/main/dyad -MCU_COMMON_SRC := $(ROOT)/lib/main/dyad/dyad.c +MCU_COMMON_SRC := $(ROOT)/lib/main/dyad/dyad.c \ + sitl.c \ + udplink.c #Flags ARCH_FLAGS = DEVICE_FLAGS = -LD_SCRIPT = src/main/target/SITL/pg.ld +LD_SCRIPT = $(LINKER_DIR)/sitl.ld STARTUP_SRC = MCU_FLASH_SIZE := 2048 diff --git a/src/main/target/SITL/platform_mcu.h b/src/platform/SITL/platform_mcu.h similarity index 100% rename from src/main/target/SITL/platform_mcu.h rename to src/platform/SITL/platform_mcu.h diff --git a/src/main/target/SITL/sitl.c b/src/platform/SITL/sitl.c similarity index 99% rename from src/main/target/SITL/sitl.c rename to src/platform/SITL/sitl.c index 7688d49fde..c8ac5a9784 100644 --- a/src/main/target/SITL/sitl.c +++ b/src/platform/SITL/sitl.c @@ -56,7 +56,7 @@ #include "rx/rx.h" #include "dyad.h" -#include "target/SITL/udplink.h" +#include "udplink.h" uint32_t SystemCoreClock; diff --git a/src/main/target/SITL/README.md b/src/platform/SITL/target/SITL/README.md similarity index 95% rename from src/main/target/SITL/README.md rename to src/platform/SITL/target/SITL/README.md index 37c0e4821b..42023c61f2 100644 --- a/src/main/target/SITL/README.md +++ b/src/platform/SITL/target/SITL/README.md @@ -44,4 +44,4 @@ gazebo -> betaflight `udp://127.0.0.1:9003` UARTx will bind on `tcp://127.0.0.1:576x` when port been open. `eeprom.bin`, size 8192 Byte, is for config saving. -size can be changed in `src/main/target/SITL/pg.ld` >> `__FLASH_CONFIG_Size` +size can be changed in `src/platform/SITL/link/SITL.ld` >> `__FLASH_CONFIG_Size` diff --git a/src/main/target/SITL/target.h b/src/platform/SITL/target/SITL/target.h similarity index 100% rename from src/main/target/SITL/target.h rename to src/platform/SITL/target/SITL/target.h diff --git a/src/main/target/SITL/target.mk b/src/platform/SITL/target/SITL/target.mk similarity index 100% rename from src/main/target/SITL/target.mk rename to src/platform/SITL/target/SITL/target.mk diff --git a/src/main/target/SITL/timer_def.h b/src/platform/SITL/timer_def.h similarity index 100% rename from src/main/target/SITL/timer_def.h rename to src/platform/SITL/timer_def.h diff --git a/src/main/target/SITL/udplink.c b/src/platform/SITL/udplink.c similarity index 100% rename from src/main/target/SITL/udplink.c rename to src/platform/SITL/udplink.c diff --git a/src/main/target/SITL/udplink.h b/src/platform/SITL/udplink.h similarity index 100% rename from src/main/target/SITL/udplink.h rename to src/platform/SITL/udplink.h diff --git a/src/main/drivers/mcu/stm32/adc_stm32f4xx.c b/src/platform/STM32/adc_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/adc_stm32f4xx.c rename to src/platform/STM32/adc_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/adc_stm32f7xx.c b/src/platform/STM32/adc_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/adc_stm32f7xx.c rename to src/platform/STM32/adc_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/adc_stm32g4xx.c b/src/platform/STM32/adc_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/adc_stm32g4xx.c rename to src/platform/STM32/adc_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/adc_stm32h7xx.c b/src/platform/STM32/adc_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/adc_stm32h7xx.c rename to src/platform/STM32/adc_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/audio_stm32f7xx.c b/src/platform/STM32/audio_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/audio_stm32f7xx.c rename to src/platform/STM32/audio_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/audio_stm32h7xx.c b/src/platform/STM32/audio_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/audio_stm32h7xx.c rename to src/platform/STM32/audio_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/bus_i2c_hal.c b/src/platform/STM32/bus_i2c_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_i2c_hal.c rename to src/platform/STM32/bus_i2c_hal.c diff --git a/src/main/drivers/mcu/stm32/bus_i2c_hal_init.c b/src/platform/STM32/bus_i2c_hal_init.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_i2c_hal_init.c rename to src/platform/STM32/bus_i2c_hal_init.c diff --git a/src/main/drivers/mcu/stm32/bus_i2c_stm32f4xx.c b/src/platform/STM32/bus_i2c_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_i2c_stm32f4xx.c rename to src/platform/STM32/bus_i2c_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/bus_octospi_stm32h7xx.c b/src/platform/STM32/bus_octospi_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_octospi_stm32h7xx.c rename to src/platform/STM32/bus_octospi_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/bus_quadspi_hal.c b/src/platform/STM32/bus_quadspi_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_quadspi_hal.c rename to src/platform/STM32/bus_quadspi_hal.c diff --git a/src/main/drivers/mcu/stm32/bus_spi_ll.c b/src/platform/STM32/bus_spi_ll.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_spi_ll.c rename to src/platform/STM32/bus_spi_ll.c diff --git a/src/main/drivers/mcu/stm32/bus_spi_stdperiph.c b/src/platform/STM32/bus_spi_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/bus_spi_stdperiph.c rename to src/platform/STM32/bus_spi_stdperiph.c diff --git a/src/platform/STM32/camera_control_stm32.c b/src/platform/STM32/camera_control_stm32.c new file mode 100644 index 0000000000..b32173747b --- /dev/null +++ b/src/platform/STM32/camera_control_stm32.c @@ -0,0 +1,101 @@ +/* + * This file is part of Betaflight. + * + * Betaflight is free software. You can redistribute this software + * and/or modify this software under the terms of the GNU General + * Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later + * version. + * + * Betaflight 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. + * + * You should have received a copy of the GNU General Public + * License along with this software. + * + * If not, see . + */ + +#include "platform.h" + +#ifdef USE_CAMERA_CONTROL + +#include + +#include "drivers/camera_control_impl.h" +#include "drivers/nvic.h" +#include "drivers/pwm_output.h" + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +#include "build/atomic.h" +#endif + +#ifdef CAMERA_CONTROL_HARDWARE_PWM_AVAILABLE +void cameraControlHardwarePwmInit(timerChannel_t *channel, const timerHardware_t *timerHardware, uint8_t inverted) +{ + pwmOutConfig(channel, timerHardware, timerClock(TIM6), CAMERA_CONTROL_PWM_RESOLUTION, 0, inverted); +} +#endif + +#ifdef CAMERA_CONTROL_SOFTWARE_PWM_AVAILABLE +void TIM6_DAC_IRQHandler(void) +{ + cameraControlHi(); + TIM6->SR = 0; +} + +void TIM7_IRQHandler(void) +{ + cameraControlLo(); + TIM7->SR = 0; +} + +void cameraControlSoftwarePwmInit(void) +{ + NVIC_InitTypeDef nvicTIM6 = { + TIM6_DAC_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER), ENABLE + }; + NVIC_Init(&nvicTIM6); + + NVIC_InitTypeDef nvicTIM7 = { + TIM7_IRQn, NVIC_PRIORITY_BASE(NVIC_PRIO_TIMER), NVIC_PRIORITY_SUB(NVIC_PRIO_TIMER), ENABLE + }; + NVIC_Init(&nvicTIM7); + + RCC->APB1ENR |= RCC_APB1Periph_TIM6 | RCC_APB1Periph_TIM7; + TIM6->PSC = 0; + TIM7->PSC = 0; +} + +void cameraControlSoftwarePwmEnable(uint32_t hiTime, uint32_t period) +{ + TIM6->CNT = hiTime; + TIM6->ARR = period; + + TIM7->CNT = 0; + TIM7->ARR = period; + + // Start two timers as simultaneously as possible + ATOMIC_BLOCK(NVIC_PRIO_TIMER) { + TIM6->CR1 = TIM_CR1_CEN; + TIM7->CR1 = TIM_CR1_CEN; + } + + // Enable interrupt generation + TIM6->DIER = TIM_IT_Update; + TIM7->DIER = TIM_IT_Update; +} + +void cameraControlSoftwarePwmDisable(void) +{ + TIM6->CR1 &= ~TIM_CR1_CEN; + TIM7->CR1 &= ~TIM_CR1_CEN; + TIM6->DIER = 0; + TIM7->DIER = 0; +} +#endif + +#endif // USE_CAMERA_CONTROL diff --git a/src/main/drivers/mcu/stm32/debug.c b/src/platform/STM32/debug.c similarity index 100% rename from src/main/drivers/mcu/stm32/debug.c rename to src/platform/STM32/debug.c diff --git a/src/main/drivers/mcu/stm32/dma_reqmap_mcu.c b/src/platform/STM32/dma_reqmap_mcu.c similarity index 100% rename from src/main/drivers/mcu/stm32/dma_reqmap_mcu.c rename to src/platform/STM32/dma_reqmap_mcu.c diff --git a/src/main/drivers/mcu/stm32/dma_reqmap_mcu.h b/src/platform/STM32/dma_reqmap_mcu.h similarity index 100% rename from src/main/drivers/mcu/stm32/dma_reqmap_mcu.h rename to src/platform/STM32/dma_reqmap_mcu.h diff --git a/src/main/drivers/mcu/stm32/dma_stm32f4xx.c b/src/platform/STM32/dma_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/dma_stm32f4xx.c rename to src/platform/STM32/dma_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/dma_stm32f7xx.c b/src/platform/STM32/dma_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/dma_stm32f7xx.c rename to src/platform/STM32/dma_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/dma_stm32g4xx.c b/src/platform/STM32/dma_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/dma_stm32g4xx.c rename to src/platform/STM32/dma_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/dma_stm32h7xx.c b/src/platform/STM32/dma_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/dma_stm32h7xx.c rename to src/platform/STM32/dma_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/dshot_bitbang.c b/src/platform/STM32/dshot_bitbang.c similarity index 100% rename from src/main/drivers/mcu/stm32/dshot_bitbang.c rename to src/platform/STM32/dshot_bitbang.c diff --git a/src/main/drivers/mcu/stm32/dshot_bitbang_ll.c b/src/platform/STM32/dshot_bitbang_ll.c similarity index 100% rename from src/main/drivers/mcu/stm32/dshot_bitbang_ll.c rename to src/platform/STM32/dshot_bitbang_ll.c diff --git a/src/main/drivers/mcu/stm32/dshot_bitbang_stdperiph.c b/src/platform/STM32/dshot_bitbang_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/dshot_bitbang_stdperiph.c rename to src/platform/STM32/dshot_bitbang_stdperiph.c diff --git a/src/main/drivers/mcu/stm32/exti.c b/src/platform/STM32/exti.c similarity index 100% rename from src/main/drivers/mcu/stm32/exti.c rename to src/platform/STM32/exti.c diff --git a/src/main/drivers/mcu/stm32/io_stm32.c b/src/platform/STM32/io_stm32.c similarity index 100% rename from src/main/drivers/mcu/stm32/io_stm32.c rename to src/platform/STM32/io_stm32.c diff --git a/src/main/drivers/mcu/stm32/light_ws2811strip_hal.c b/src/platform/STM32/light_ws2811strip_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/light_ws2811strip_hal.c rename to src/platform/STM32/light_ws2811strip_hal.c diff --git a/src/main/drivers/mcu/stm32/light_ws2811strip_stdperiph.c b/src/platform/STM32/light_ws2811strip_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/light_ws2811strip_stdperiph.c rename to src/platform/STM32/light_ws2811strip_stdperiph.c diff --git a/src/link/stm32_flash.ld b/src/platform/STM32/link/stm32_flash.ld similarity index 100% rename from src/link/stm32_flash.ld rename to src/platform/STM32/link/stm32_flash.ld diff --git a/src/link/stm32_flash_f405.ld b/src/platform/STM32/link/stm32_flash_f405.ld similarity index 100% rename from src/link/stm32_flash_f405.ld rename to src/platform/STM32/link/stm32_flash_f405.ld diff --git a/src/link/stm32_flash_f411.ld b/src/platform/STM32/link/stm32_flash_f411.ld similarity index 100% rename from src/link/stm32_flash_f411.ld rename to src/platform/STM32/link/stm32_flash_f411.ld diff --git a/src/link/stm32_flash_f446.ld b/src/platform/STM32/link/stm32_flash_f446.ld similarity index 100% rename from src/link/stm32_flash_f446.ld rename to src/platform/STM32/link/stm32_flash_f446.ld diff --git a/src/link/stm32_flash_f4_split.ld b/src/platform/STM32/link/stm32_flash_f4_split.ld similarity index 100% rename from src/link/stm32_flash_f4_split.ld rename to src/platform/STM32/link/stm32_flash_f4_split.ld diff --git a/src/link/stm32_flash_f722.ld b/src/platform/STM32/link/stm32_flash_f722.ld similarity index 100% rename from src/link/stm32_flash_f722.ld rename to src/platform/STM32/link/stm32_flash_f722.ld diff --git a/src/link/stm32_flash_f74x.ld b/src/platform/STM32/link/stm32_flash_f74x.ld similarity index 100% rename from src/link/stm32_flash_f74x.ld rename to src/platform/STM32/link/stm32_flash_f74x.ld diff --git a/src/link/stm32_flash_f765.ld b/src/platform/STM32/link/stm32_flash_f765.ld similarity index 100% rename from src/link/stm32_flash_f765.ld rename to src/platform/STM32/link/stm32_flash_f765.ld diff --git a/src/link/stm32_flash_f7_split.ld b/src/platform/STM32/link/stm32_flash_f7_split.ld similarity index 100% rename from src/link/stm32_flash_f7_split.ld rename to src/platform/STM32/link/stm32_flash_f7_split.ld diff --git a/src/link/stm32_flash_g474.ld b/src/platform/STM32/link/stm32_flash_g474.ld similarity index 100% rename from src/link/stm32_flash_g474.ld rename to src/platform/STM32/link/stm32_flash_g474.ld diff --git a/src/link/stm32_flash_g4_split.ld b/src/platform/STM32/link/stm32_flash_g4_split.ld similarity index 100% rename from src/link/stm32_flash_g4_split.ld rename to src/platform/STM32/link/stm32_flash_g4_split.ld diff --git a/src/link/stm32_flash_h563_2m.ld b/src/platform/STM32/link/stm32_flash_h563_2m.ld similarity index 100% rename from src/link/stm32_flash_h563_2m.ld rename to src/platform/STM32/link/stm32_flash_h563_2m.ld diff --git a/src/link/stm32_flash_h723_1m.ld b/src/platform/STM32/link/stm32_flash_h723_1m.ld similarity index 100% rename from src/link/stm32_flash_h723_1m.ld rename to src/platform/STM32/link/stm32_flash_h723_1m.ld diff --git a/src/link/stm32_flash_h743_2m.ld b/src/platform/STM32/link/stm32_flash_h743_2m.ld similarity index 100% rename from src/link/stm32_flash_h743_2m.ld rename to src/platform/STM32/link/stm32_flash_h743_2m.ld diff --git a/src/link/stm32_flash_h750_128k.ld b/src/platform/STM32/link/stm32_flash_h750_128k.ld similarity index 100% rename from src/link/stm32_flash_h750_128k.ld rename to src/platform/STM32/link/stm32_flash_h750_128k.ld diff --git a/src/link/stm32_flash_h750_1m.ld b/src/platform/STM32/link/stm32_flash_h750_1m.ld similarity index 100% rename from src/link/stm32_flash_h750_1m.ld rename to src/platform/STM32/link/stm32_flash_h750_1m.ld diff --git a/src/link/stm32_flash_h7a3_2m.ld b/src/platform/STM32/link/stm32_flash_h7a3_2m.ld similarity index 100% rename from src/link/stm32_flash_h7a3_2m.ld rename to src/platform/STM32/link/stm32_flash_h7a3_2m.ld diff --git a/src/link/stm32_h723_common.ld b/src/platform/STM32/link/stm32_h723_common.ld similarity index 100% rename from src/link/stm32_h723_common.ld rename to src/platform/STM32/link/stm32_h723_common.ld diff --git a/src/link/stm32_h723_common_post.ld b/src/platform/STM32/link/stm32_h723_common_post.ld similarity index 100% rename from src/link/stm32_h723_common_post.ld rename to src/platform/STM32/link/stm32_h723_common_post.ld diff --git a/src/link/stm32_h730_common.ld b/src/platform/STM32/link/stm32_h730_common.ld similarity index 100% rename from src/link/stm32_h730_common.ld rename to src/platform/STM32/link/stm32_h730_common.ld diff --git a/src/link/stm32_h730_common_post.ld b/src/platform/STM32/link/stm32_h730_common_post.ld similarity index 100% rename from src/link/stm32_h730_common_post.ld rename to src/platform/STM32/link/stm32_h730_common_post.ld diff --git a/src/link/stm32_h750_common.ld b/src/platform/STM32/link/stm32_h750_common.ld similarity index 100% rename from src/link/stm32_h750_common.ld rename to src/platform/STM32/link/stm32_h750_common.ld diff --git a/src/link/stm32_h750_common_post.ld b/src/platform/STM32/link/stm32_h750_common_post.ld similarity index 100% rename from src/link/stm32_h750_common_post.ld rename to src/platform/STM32/link/stm32_h750_common_post.ld diff --git a/src/link/stm32_ram_h723_exst.ld b/src/platform/STM32/link/stm32_ram_h723_exst.ld similarity index 100% rename from src/link/stm32_ram_h723_exst.ld rename to src/platform/STM32/link/stm32_ram_h723_exst.ld diff --git a/src/link/stm32_ram_h723_exst_post.ld b/src/platform/STM32/link/stm32_ram_h723_exst_post.ld similarity index 100% rename from src/link/stm32_ram_h723_exst_post.ld rename to src/platform/STM32/link/stm32_ram_h723_exst_post.ld diff --git a/src/link/stm32_ram_h730_exst.ld b/src/platform/STM32/link/stm32_ram_h730_exst.ld similarity index 100% rename from src/link/stm32_ram_h730_exst.ld rename to src/platform/STM32/link/stm32_ram_h730_exst.ld diff --git a/src/link/stm32_ram_h730_exst_post.ld b/src/platform/STM32/link/stm32_ram_h730_exst_post.ld similarity index 100% rename from src/link/stm32_ram_h730_exst_post.ld rename to src/platform/STM32/link/stm32_ram_h730_exst_post.ld diff --git a/src/link/stm32_ram_h743.ld b/src/platform/STM32/link/stm32_ram_h743.ld similarity index 100% rename from src/link/stm32_ram_h743.ld rename to src/platform/STM32/link/stm32_ram_h743.ld diff --git a/src/link/stm32_ram_h750_exst.ld b/src/platform/STM32/link/stm32_ram_h750_exst.ld similarity index 100% rename from src/link/stm32_ram_h750_exst.ld rename to src/platform/STM32/link/stm32_ram_h750_exst.ld diff --git a/src/link/stm32_ram_h750_exst_post.ld b/src/platform/STM32/link/stm32_ram_h750_exst_post.ld similarity index 100% rename from src/link/stm32_ram_h750_exst_post.ld rename to src/platform/STM32/link/stm32_ram_h750_exst_post.ld diff --git a/src/main/drivers/mcu/stm32/memprot_hal.c b/src/platform/STM32/memprot_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/memprot_hal.c rename to src/platform/STM32/memprot_hal.c diff --git a/src/main/drivers/mcu/stm32/memprot_stm32g4xx.c b/src/platform/STM32/memprot_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/memprot_stm32g4xx.c rename to src/platform/STM32/memprot_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/memprot_stm32h7xx.c b/src/platform/STM32/memprot_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/memprot_stm32h7xx.c rename to src/platform/STM32/memprot_stm32h7xx.c diff --git a/mk/mcu/STM32F4.mk b/src/platform/STM32/mk/STM32F4.mk similarity index 73% rename from mk/mcu/STM32F4.mk rename to src/platform/STM32/mk/STM32F4.mk index 1ed16fcea0..35af80f959 100644 --- a/mk/mcu/STM32F4.mk +++ b/src/platform/STM32/mk/STM32F4.mk @@ -117,12 +117,14 @@ ifeq ($(PERIPH_DRIVER), HAL) CMSIS_SRC := INCLUDE_DIRS := \ $(INCLUDE_DIRS) \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/Inc \ $(USBCORE_DIR)/Inc \ $(USBCDC_DIR)/Inc \ $(CMSIS_DIR)/Include \ $(CMSIS_DIR)/Device/ST/STM32F4xx/Include \ - $(SRC_DIR)/drivers/mcu/stm32/vcp_hal + $(TARGET_PLATFORM_DIR)/vcp_hal else CMSIS_SRC := \ stm32f4xx_gpio.c \ @@ -130,6 +132,8 @@ CMSIS_SRC := \ INCLUDE_DIRS := \ $(INCLUDE_DIRS) \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/inc \ $(USBOTG_DIR)/inc \ $(USBCORE_DIR)/inc \ @@ -139,7 +143,7 @@ INCLUDE_DIRS := \ $(USBMSC_DIR)/inc \ $(CMSIS_DIR)/Core/Include \ $(ROOT)/lib/main/STM32F4/Drivers/CMSIS/Device/ST/STM32F4xx \ - $(SRC_DIR)/drivers/mcu/stm32/vcpf4 + $(TARGET_PLATFORM_DIR)/vcpf4 endif #Flags @@ -148,19 +152,19 @@ ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu ifeq ($(TARGET_MCU),STM32F411xE) DEVICE_FLAGS = -DSTM32F411xE -finline-limit=20 LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f411.ld -STARTUP_SRC = stm32/startup_stm32f411xe.s +STARTUP_SRC = startup/startup_stm32f411xe.s MCU_FLASH_SIZE := 512 else ifeq ($(TARGET_MCU),STM32F405xx) DEVICE_FLAGS = -DSTM32F40_41xxx -DSTM32F405xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f405.ld -STARTUP_SRC = stm32/startup_stm32f40xx.s +STARTUP_SRC = startup/startup_stm32f40xx.s MCU_FLASH_SIZE := 1024 else ifeq ($(TARGET_MCU),STM32F446xx) DEVICE_FLAGS = -DSTM32F446xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f446.ld -STARTUP_SRC = stm32/startup_stm32f446xx.s +STARTUP_SRC = startup/startup_stm32f446xx.s MCU_FLASH_SIZE := 512 else @@ -173,54 +177,54 @@ MCU_COMMON_SRC = \ drivers/dshot_bitbang_decode.c \ drivers/inverter.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/stm32/pwm_output_dshot.c \ - drivers/mcu/stm32/adc_stm32f4xx.c \ - drivers/mcu/stm32/bus_i2c_stm32f4xx.c \ - drivers/mcu/stm32/bus_spi_stdperiph.c \ - drivers/mcu/stm32/debug.c \ - drivers/mcu/stm32/dma_reqmap_mcu.c \ - drivers/mcu/stm32/dma_stm32f4xx.c \ - drivers/mcu/stm32/dshot_bitbang.c \ - drivers/mcu/stm32/dshot_bitbang_stdperiph.c \ - drivers/mcu/stm32/exti.c \ - drivers/mcu/stm32/io_stm32.c \ - drivers/mcu/stm32/light_ws2811strip_stdperiph.c \ - drivers/mcu/stm32/persistent.c \ - drivers/mcu/stm32/pwm_output.c \ - drivers/mcu/stm32/rcc_stm32.c \ - drivers/mcu/stm32/sdio_f4xx.c \ - drivers/mcu/stm32/serial_uart_stdperiph.c \ - drivers/mcu/stm32/serial_uart_stm32f4xx.c \ - drivers/mcu/stm32/system_stm32f4xx.c \ - drivers/mcu/stm32/timer_stdperiph.c \ - drivers/mcu/stm32/timer_stm32f4xx.c \ - drivers/mcu/stm32/transponder_ir_io_stdperiph.c \ - drivers/mcu/stm32/usbd_msc_desc.c \ - drivers/mcu/stm32/camera_control.c \ - startup/stm32/system_stm32f4xx.c + pwm_output_dshot.c \ + adc_stm32f4xx.c \ + bus_i2c_stm32f4xx.c \ + bus_spi_stdperiph.c \ + debug.c \ + dma_reqmap_mcu.c \ + dma_stm32f4xx.c \ + dshot_bitbang.c \ + dshot_bitbang_stdperiph.c \ + exti.c \ + io_stm32.c \ + light_ws2811strip_stdperiph.c \ + persistent.c \ + pwm_output.c \ + rcc_stm32.c \ + sdio_f4xx.c \ + serial_uart_stdperiph.c \ + serial_uart_stm32f4xx.c \ + system_stm32f4xx.c \ + timer_stdperiph.c \ + timer_stm32f4xx.c \ + transponder_ir_io_stdperiph.c \ + usbd_msc_desc.c \ + camera_control_stm32.c \ + startup/system_stm32f4xx.c ifeq ($(PERIPH_DRIVER), HAL) VCP_SRC = \ - drivers/mcu/stm32/vcp_hal/usbd_desc.c \ - drivers/mcu/stm32/vcp_hal/usbd_conf.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcp_hal/usbd_desc.c \ + vcp_hal/usbd_conf.c \ + vcp_hal/usbd_cdc_interface.c \ + serial_usb_vcp.c \ drivers/usb_io.c else VCP_SRC = \ - drivers/mcu/stm32/vcpf4/stm32f4xx_it.c \ - drivers/mcu/stm32/vcpf4/usb_bsp.c \ - drivers/mcu/stm32/vcpf4/usbd_desc.c \ - drivers/mcu/stm32/vcpf4/usbd_usr.c \ - drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.c \ - drivers/mcu/stm32/vcpf4/usb_cdc_hid.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcpf4/stm32f4xx_it.c \ + vcpf4/usb_bsp.c \ + vcpf4/usbd_desc.c \ + vcpf4/usbd_usr.c \ + vcpf4/usbd_cdc_vcp.c \ + vcpf4/usb_cdc_hid.c \ + serial_usb_vcp.c \ drivers/usb_io.c endif MSC_SRC = \ drivers/usb_msc_common.c \ - drivers/mcu/stm32/usb_msc_f4xx.c \ + usb_msc_f4xx.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ msc/emfat.c \ diff --git a/mk/mcu/STM32F7.mk b/src/platform/STM32/mk/STM32F7.mk similarity index 71% rename from mk/mcu/STM32F7.mk rename to src/platform/STM32/mk/STM32F7.mk index 18a44d6175..0ab7117f76 100644 --- a/mk/mcu/STM32F7.mk +++ b/src/platform/STM32/mk/STM32F7.mk @@ -85,7 +85,8 @@ VPATH := $(VPATH):$(STDPERIPH_DIR)/Src CMSIS_SRC := INCLUDE_DIRS := $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/stm32 \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/Inc \ $(USBCORE_DIR)/Inc \ $(USBCDC_DIR)/Inc \ @@ -93,8 +94,7 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \ $(USBMSC_DIR)/Inc \ $(CMSIS_DIR)/Core/Include \ $(ROOT)/lib/main/STM32F7/Drivers/CMSIS/Device/ST/STM32F7xx/Include \ - $(SRC_DIR)/drivers/mcu/stm32 \ - $(SRC_DIR)/drivers/mcu/stm32/vcp_hal + $(TARGET_PLATFORM_DIR)/vcp_hal #Flags ARCH_FLAGS = -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fsingle-precision-constant @@ -105,24 +105,24 @@ DEVICE_FLAGS = -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER ifeq ($(TARGET_MCU),STM32F765xx) DEVICE_FLAGS += -DSTM32F765xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f765.ld -STARTUP_SRC = stm32/startup_stm32f765xx.s +STARTUP_SRC = startup/startup_stm32f765xx.s MCU_FLASH_SIZE := 2048 else ifeq ($(TARGET_MCU),STM32F745xx) DEVICE_FLAGS += -DSTM32F745xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f74x.ld -STARTUP_SRC = stm32/startup_stm32f745xx.s +STARTUP_SRC = startup/startup_stm32f745xx.s MCU_FLASH_SIZE := 1024 else ifeq ($(TARGET_MCU),STM32F746xx) DEVICE_FLAGS += -DSTM32F746xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f74x.ld -STARTUP_SRC = stm32/startup_stm32f746xx.s +STARTUP_SRC = startup/startup_stm32f746xx.s MCU_FLASH_SIZE := 1024 else ifeq ($(TARGET_MCU),STM32F722xx) DEVICE_FLAGS += -DSTM32F722xx ifndef LD_SCRIPT LD_SCRIPT = $(LINKER_DIR)/stm32_flash_f722.ld endif -STARTUP_SRC = stm32/startup_stm32f722xx.s +STARTUP_SRC = startup/startup_stm32f722xx.s MCU_FLASH_SIZE := 512 # Override the OPTIMISE_SPEED compiler setting to save flash space on these 512KB targets. # Performance is only slightly affected but around 50 kB of flash are saved. @@ -133,11 +133,11 @@ endif DEVICE_FLAGS += -DHSE_VALUE=$(HSE_VALUE) -DSTM32 VCP_SRC = \ - drivers/mcu/stm32/vcp_hal/usbd_desc.c \ - drivers/mcu/stm32/vcp_hal/usbd_conf_stm32f7xx.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcp_hal/usbd_desc.c \ + vcp_hal/usbd_conf_stm32f7xx.c \ + vcp_hal/usbd_cdc_hid.c \ + vcp_hal/usbd_cdc_interface.c \ + serial_usb_vcp.c \ drivers/usb_io.c MCU_COMMON_SRC = \ @@ -145,39 +145,39 @@ MCU_COMMON_SRC = \ drivers/bus_i2c_timing.c \ drivers/dshot_bitbang_decode.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/stm32/adc_stm32f7xx.c \ - drivers/mcu/stm32/audio_stm32f7xx.c \ - drivers/mcu/stm32/bus_i2c_hal_init.c \ - drivers/mcu/stm32/bus_i2c_hal.c \ - drivers/mcu/stm32/bus_spi_ll.c \ - drivers/mcu/stm32/debug.c \ - drivers/mcu/stm32/dma_reqmap_mcu.c \ - drivers/mcu/stm32/dma_stm32f7xx.c \ - drivers/mcu/stm32/dshot_bitbang_ll.c \ - drivers/mcu/stm32/dshot_bitbang.c \ - drivers/mcu/stm32/exti.c \ - drivers/mcu/stm32/io_stm32.c \ - drivers/mcu/stm32/light_ws2811strip_hal.c \ - drivers/mcu/stm32/persistent.c \ - drivers/mcu/stm32/pwm_output.c \ - drivers/mcu/stm32/pwm_output_dshot_hal.c \ - drivers/mcu/stm32/rcc_stm32.c \ - drivers/mcu/stm32/sdio_f7xx.c \ - drivers/mcu/stm32/serial_uart_hal.c \ - drivers/mcu/stm32/serial_uart_stm32f7xx.c \ - drivers/mcu/stm32/system_stm32f7xx.c \ - drivers/mcu/stm32/timer_hal.c \ - drivers/mcu/stm32/timer_stm32f7xx.c \ - drivers/mcu/stm32/transponder_ir_io_hal.c \ - drivers/mcu/stm32/camera_control.c \ - startup/stm32/system_stm32f7xx.c + adc_stm32f7xx.c \ + audio_stm32f7xx.c \ + bus_i2c_hal_init.c \ + bus_i2c_hal.c \ + bus_spi_ll.c \ + debug.c \ + dma_reqmap_mcu.c \ + dma_stm32f7xx.c \ + dshot_bitbang_ll.c \ + dshot_bitbang.c \ + exti.c \ + io_stm32.c \ + light_ws2811strip_hal.c \ + persistent.c \ + pwm_output.c \ + pwm_output_dshot_hal.c \ + rcc_stm32.c \ + sdio_f7xx.c \ + serial_uart_hal.c \ + serial_uart_stm32f7xx.c \ + system_stm32f7xx.c \ + timer_hal.c \ + timer_stm32f7xx.c \ + transponder_ir_io_hal.c \ + camera_control_stm32.c \ + startup/system_stm32f7xx.c MCU_EXCLUDES = \ drivers/bus_i2c.c MSC_SRC = \ drivers/usb_msc_common.c \ - drivers/mcu/stm32/usb_msc_hal.c \ + usb_msc_hal.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ msc/emfat.c \ diff --git a/mk/mcu/STM32G4.mk b/src/platform/STM32/mk/STM32G4.mk similarity index 70% rename from mk/mcu/STM32G4.mk rename to src/platform/STM32/mk/STM32G4.mk index 9373d2f058..fc2b512a56 100644 --- a/mk/mcu/STM32G4.mk +++ b/src/platform/STM32/mk/STM32G4.mk @@ -78,7 +78,8 @@ VPATH := $(VPATH):$(STDPERIPH_DIR)/Src CMSIS_SRC := INCLUDE_DIRS := \ $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/stm32 \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/Inc \ $(USBCORE_DIR)/Inc \ $(USBCDC_DIR)/Inc \ @@ -86,8 +87,7 @@ INCLUDE_DIRS := \ $(USBMSC_DIR)/Inc \ $(CMSIS_DIR)/Core/Include \ $(ROOT)/lib/main/STM32G4/Drivers/CMSIS/Device/ST/STM32G4xx/Include \ - $(SRC_DIR)/drivers/mcu/stm32 \ - $(SRC_DIR)/drivers/mcu/stm32/vcp_hal + $(TARGET_PLATFORM_DIR)/vcp_hal #Flags ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant @@ -99,7 +99,7 @@ DEVICE_FLAGS = -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER -DUSE_DMA_RAM -DMAX_MPU_ ifeq ($(TARGET_MCU),STM32G474xx) DEVICE_FLAGS += -DSTM32G474xx LD_SCRIPT = $(LINKER_DIR)/stm32_flash_g474.ld -STARTUP_SRC = stm32/startup_stm32g474xx.s +STARTUP_SRC = startup/startup_stm32g474xx.s MCU_FLASH_SIZE = 512 # Override the OPTIMISE_SPEED compiler setting to save flash space on these 512KB targets. # Performance is only slightly affected but around 50 kB of flash are saved. @@ -110,11 +110,11 @@ endif DEVICE_FLAGS += -DHSE_VALUE=$(HSE_VALUE) -DSTM32 VCP_SRC = \ - drivers/mcu/stm32/vcp_hal/usbd_desc.c \ - drivers/mcu/stm32/vcp_hal/usbd_conf_stm32g4xx.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcp_hal/usbd_desc.c \ + vcp_hal/usbd_conf_stm32g4xx.c \ + vcp_hal/usbd_cdc_hid.c \ + vcp_hal/usbd_cdc_interface.c \ + serial_usb_vcp.c \ drivers/usb_io.c MCU_COMMON_SRC = \ @@ -122,32 +122,32 @@ MCU_COMMON_SRC = \ drivers/bus_i2c_timing.c \ drivers/dshot_bitbang_decode.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/stm32/adc_stm32g4xx.c \ - drivers/mcu/stm32/bus_i2c_hal_init.c \ - drivers/mcu/stm32/bus_i2c_hal.c \ - drivers/mcu/stm32/bus_spi_ll.c \ - drivers/mcu/stm32/debug.c \ - drivers/mcu/stm32/dma_reqmap_mcu.c \ - drivers/mcu/stm32/dma_stm32g4xx.c \ - drivers/mcu/stm32/dshot_bitbang_ll.c \ - drivers/mcu/stm32/dshot_bitbang.c \ - drivers/mcu/stm32/exti.c \ - drivers/mcu/stm32/io_stm32.c \ - drivers/mcu/stm32/light_ws2811strip_hal.c \ - drivers/mcu/stm32/memprot_hal.c \ - drivers/mcu/stm32/memprot_stm32g4xx.c \ - drivers/mcu/stm32/persistent.c \ - drivers/mcu/stm32/pwm_output.c \ - drivers/mcu/stm32/pwm_output_dshot_hal.c \ - drivers/mcu/stm32/rcc_stm32.c \ - drivers/mcu/stm32/serial_uart_hal.c \ - drivers/mcu/stm32/serial_uart_stm32g4xx.c \ - drivers/mcu/stm32/system_stm32g4xx.c \ - drivers/mcu/stm32/timer_hal.c \ - drivers/mcu/stm32/timer_stm32g4xx.c \ - drivers/mcu/stm32/transponder_ir_io_hal.c \ - drivers/mcu/stm32/camera_control.c \ - startup/stm32/system_stm32g4xx.c + adc_stm32g4xx.c \ + bus_i2c_hal_init.c \ + bus_i2c_hal.c \ + bus_spi_ll.c \ + debug.c \ + dma_reqmap_mcu.c \ + dma_stm32g4xx.c \ + dshot_bitbang_ll.c \ + dshot_bitbang.c \ + exti.c \ + io_stm32.c \ + light_ws2811strip_hal.c \ + memprot_hal.c \ + memprot_stm32g4xx.c \ + persistent.c \ + pwm_output.c \ + pwm_output_dshot_hal.c \ + rcc_stm32.c \ + serial_uart_hal.c \ + serial_uart_stm32g4xx.c \ + system_stm32g4xx.c \ + timer_hal.c \ + timer_stm32g4xx.c \ + transponder_ir_io_hal.c \ + camera_control_stm32.c \ + startup/system_stm32g4xx.c MCU_EXCLUDES = \ drivers/bus_i2c.c @@ -155,7 +155,7 @@ MCU_EXCLUDES = \ # G4's MSC use the same driver layer file with F7 MSC_SRC = \ drivers/usb_msc_common.c \ - drivers/mcu/stm32/usb_msc_hal.c \ + usb_msc_hal.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ msc/emfat.c \ diff --git a/mk/mcu/STM32H5.mk b/src/platform/STM32/mk/STM32H5.mk similarity index 72% rename from mk/mcu/STM32H5.mk rename to src/platform/STM32/mk/STM32H5.mk index b2ca3d1c92..4159e3ce33 100644 --- a/mk/mcu/STM32H5.mk +++ b/src/platform/STM32/mk/STM32H5.mk @@ -87,7 +87,8 @@ VPATH := $(VPATH):$(CMSIS_DIR)/Include:$(CMSIS_DIR)/Device/ST/STM32H5x VPATH := $(VPATH):$(STDPERIPH_DIR)/Src CMSIS_SRC := INCLUDE_DIRS := $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/stm32 \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/Inc \ $(USBCORE_DIR)/Inc \ $(USBCDC_DIR)/Inc \ @@ -95,8 +96,7 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \ $(USBMSC_DIR)/Inc \ $(CMSIS_DIR)/Core/Include \ $(ROOT)/lib/main/STM32H5/Drivers/CMSIS/Device/ST/STM32H5xx/Include \ - $(SRC_DIR)/drivers/mcu/stm32 \ - $(SRC_DIR)/drivers/mcu/stm32/vcp_hal + $(TARGET_PLATFORM_DIR)/vcp_hal #Flags ARCH_FLAGS = -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fsingle-precision-constant @@ -110,7 +110,7 @@ DEVICE_FLAGS = -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER ifeq ($(TARGET_MCU),STM32H563xx) DEVICE_FLAGS += -DSTM32H563xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h563_2m.ld -STARTUP_SRC = stm32/startup_stm32h563xx.s +STARTUP_SRC = startup/startup_stm32h563xx.s MCU_FLASH_SIZE := 2048 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -141,11 +141,11 @@ DEVICE_FLAGS += -DHSE_VALUE=$(HSE_VALUE) -DHSE_STARTUP_TIMEOUT=1000 -DSTM32 VCP_SRC = #VCP_SRC = \ - drivers/mcu/stm32/vcp_hal/usbd_desc.c \ - drivers/mcu/stm32/vcp_hal/usbd_conf_stm32h5xx.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcp_hal/usbd_desc.c \ + vcp_hal/usbd_conf_stm32h5xx.c \ + vcp_hal/usbd_cdc_hid.c \ + vcp_hal/usbd_cdc_interface.c \ + serial_usb_vcp.c \ drivers/usb_io.c MCU_COMMON_SRC = \ @@ -153,42 +153,42 @@ MCU_COMMON_SRC = \ drivers/bus_quadspi.c \ drivers/dshot_bitbang_decode.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/stm32/bus_i2c_hal_init.c \ - drivers/mcu/stm32/bus_i2c_hal.c \ - drivers/mcu/stm32/bus_spi_ll.c \ - drivers/mcu/stm32/bus_quadspi_hal.c \ - drivers/mcu/stm32/debug.c \ - drivers/mcu/stm32/dma_reqmap_mcu.c \ - drivers/mcu/stm32/dshot_bitbang_ll.c \ - drivers/mcu/stm32/dshot_bitbang.c \ - drivers/mcu/stm32/exti.c \ - drivers/mcu/stm32/io_stm32.c \ - drivers/mcu/stm32/light_ws2811strip_hal.c \ - drivers/mcu/stm32/persistent.c \ - drivers/mcu/stm32/pwm_output.c \ - drivers/mcu/stm32/pwm_output_dshot_hal.c \ - drivers/mcu/stm32/rcc_stm32.c \ - drivers/mcu/stm32/serial_uart_hal.c \ - drivers/mcu/stm32/timer_hal.c \ - drivers/mcu/stm32/transponder_ir_io_hal.c \ - drivers/mcu/stm32/camera_control.c \ - drivers/mcu/stm32/system_stm32h5xx.c \ - startup/stm32/system_stm32h5xx.c + bus_i2c_hal_init.c \ + bus_i2c_hal.c \ + bus_spi_ll.c \ + bus_quadspi_hal.c \ + debug.c \ + dma_reqmap_mcu.c \ + dshot_bitbang_ll.c \ + dshot_bitbang.c \ + exti.c \ + io_stm32.c \ + light_ws2811strip_hal.c \ + persistent.c \ + pwm_output.c \ + pwm_output_dshot_hal.c \ + rcc_stm32.c \ + serial_uart_hal.c \ + timer_hal.c \ + transponder_ir_io_hal.c \ + camera_control_stm32.c \ + system_stm32h5xx.c \ + startup/system_stm32h5xx.c -# drivers/mcu/stm32/memprot_hal.c \ -# drivers/mcu/stm32/memprot_stm32h5xx.c \ -# drivers/mcu/stm32/serial_uart_stm32h5xx.c \ -# drivers/mcu/stm32/sdio_h5xx.c \ -# drivers/mcu/stm32/timer_stm32h5xx.c \ -# drivers/mcu/stm32/adc_stm32h5xx.c \ -# drivers/mcu/stm32/dma_stm32h5xx.c \ +# memprot_hal.c \ +# memprot_stm32h5xx.c \ +# serial_uart_stm32h5xx.c \ +# sdio_h5xx.c \ +# timer_stm32h5xx.c \ +# adc_stm32h5xx.c \ +# dma_stm32h5xx.c \ MCU_EXCLUDES = \ drivers/bus_i2c.c MSC_SRC = #MSC_SRC = \ - drivers/mcu/stm32/usb_msc_hal.c \ + usb_msc_hal.c \ drivers/usb_msc_common.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ diff --git a/mk/mcu/STM32H7.mk b/src/platform/STM32/mk/STM32H7.mk similarity index 79% rename from mk/mcu/STM32H7.mk rename to src/platform/STM32/mk/STM32H7.mk index 817ab40ed5..d448759b85 100644 --- a/mk/mcu/STM32H7.mk +++ b/src/platform/STM32/mk/STM32H7.mk @@ -91,7 +91,8 @@ VPATH := $(VPATH):$(CMSIS_DIR)/Include:$(CMSIS_DIR)/Device/ST/STM32H7x VPATH := $(VPATH):$(STDPERIPH_DIR)/Src CMSIS_SRC := INCLUDE_DIRS := $(INCLUDE_DIRS) \ - $(SRC_DIR)/startup/stm32 \ + $(TARGET_PLATFORM_DIR) \ + $(TARGET_PLATFORM_DIR)/startup \ $(STDPERIPH_DIR)/Inc \ $(USBCORE_DIR)/Inc \ $(USBCDC_DIR)/Inc \ @@ -99,8 +100,7 @@ INCLUDE_DIRS := $(INCLUDE_DIRS) \ $(USBMSC_DIR)/Inc \ $(CMSIS_DIR)/Core/Include \ $(ROOT)/lib/main/STM32H7/Drivers/CMSIS/Device/ST/STM32H7xx/Include \ - $(SRC_DIR)/drivers/mcu/stm32 \ - $(SRC_DIR)/drivers/mcu/stm32/vcp_hal + $(TARGET_PLATFORM_DIR)/vcp_hal #Flags ARCH_FLAGS = -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fsingle-precision-constant @@ -117,7 +117,7 @@ DEVICE_FLAGS = -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER ifeq ($(TARGET_MCU),STM32H743xx) DEVICE_FLAGS += -DSTM32H743xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h743_2m.ld -STARTUP_SRC = stm32/startup_stm32h743xx.s +STARTUP_SRC = startup/startup_stm32h743xx.s MCU_FLASH_SIZE := 2048 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -132,7 +132,7 @@ endif else ifeq ($(TARGET_MCU),STM32H7A3xxQ) DEVICE_FLAGS += -DSTM32H7A3xxQ DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h7a3_2m.ld -STARTUP_SRC = stm32/startup_stm32h7a3xx.s +STARTUP_SRC = startup/startup_stm32h7a3xx.s MCU_FLASH_SIZE := 2048 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -147,7 +147,7 @@ endif else ifeq ($(TARGET_MCU),STM32H7A3xx) DEVICE_FLAGS += -DSTM32H7A3xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h7a3_2m.ld -STARTUP_SRC = stm32/startup_stm32h7a3xx.s +STARTUP_SRC = startup/startup_stm32h7a3xx.s MCU_FLASH_SIZE := 2048 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -162,7 +162,7 @@ endif else ifeq ($(TARGET_MCU),STM32H723xx) DEVICE_FLAGS += -DSTM32H723xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h723_1m.ld -STARTUP_SRC = stm32/startup_stm32h723xx.s +STARTUP_SRC = startup/startup_stm32h723xx.s DEFAULT_TARGET_FLASH := 1024 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -182,14 +182,14 @@ endif else ifeq ($(TARGET_MCU),STM32H725xx) DEVICE_FLAGS += -DSTM32H725xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h723_1m.ld -STARTUP_SRC = stm32/startup_stm32h723xx.s +STARTUP_SRC = startup/startup_stm32h723xx.s MCU_FLASH_SIZE := 1024 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 else ifeq ($(TARGET_MCU),STM32H730xx) DEVICE_FLAGS += -DSTM32H730xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h730_128m.ld -STARTUP_SRC = stm32/startup_stm32h730xx.s +STARTUP_SRC = startup/startup_stm32h730xx.s DEFAULT_TARGET_FLASH := 128 DEVICE_FLAGS += -DMAX_MPU_REGIONS=16 @@ -211,7 +211,7 @@ endif else ifeq ($(TARGET_MCU),STM32H750xx) DEVICE_FLAGS += -DSTM32H750xx DEFAULT_LD_SCRIPT = $(LINKER_DIR)/stm32_flash_h750_128k.ld -STARTUP_SRC = stm32/startup_stm32h743xx.s +STARTUP_SRC = startup/startup_stm32h743xx.s DEFAULT_TARGET_FLASH := 128 ifeq ($(TARGET_FLASH),) @@ -256,11 +256,11 @@ endif DEVICE_FLAGS += -DHSE_VALUE=$(HSE_VALUE) -DHSE_STARTUP_TIMEOUT=1000 -DSTM32 VCP_SRC = \ - drivers/mcu/stm32/vcp_hal/usbd_desc.c \ - drivers/mcu/stm32/vcp_hal/usbd_conf_stm32h7xx.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c \ - drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c \ - drivers/mcu/stm32/serial_usb_vcp.c \ + vcp_hal/usbd_desc.c \ + vcp_hal/usbd_conf_stm32h7xx.c \ + vcp_hal/usbd_cdc_hid.c \ + vcp_hal/usbd_cdc_interface.c \ + serial_usb_vcp.c \ drivers/usb_io.c MCU_COMMON_SRC = \ @@ -268,42 +268,42 @@ MCU_COMMON_SRC = \ drivers/bus_quadspi.c \ drivers/dshot_bitbang_decode.c \ drivers/pwm_output_dshot_shared.c \ - drivers/mcu/stm32/adc_stm32h7xx.c \ - drivers/mcu/stm32/audio_stm32h7xx.c \ - drivers/mcu/stm32/bus_i2c_hal_init.c \ - drivers/mcu/stm32/bus_i2c_hal.c \ - drivers/mcu/stm32/bus_spi_ll.c \ - drivers/mcu/stm32/bus_quadspi_hal.c \ - drivers/mcu/stm32/bus_octospi_stm32h7xx.c \ - drivers/mcu/stm32/debug.c \ - drivers/mcu/stm32/dma_reqmap_mcu.c \ - drivers/mcu/stm32/dma_stm32h7xx.c \ - drivers/mcu/stm32/dshot_bitbang_ll.c \ - drivers/mcu/stm32/dshot_bitbang.c \ - drivers/mcu/stm32/exti.c \ - drivers/mcu/stm32/io_stm32.c \ - drivers/mcu/stm32/light_ws2811strip_hal.c \ - drivers/mcu/stm32/memprot_hal.c \ - drivers/mcu/stm32/memprot_stm32h7xx.c \ - drivers/mcu/stm32/persistent.c \ - drivers/mcu/stm32/pwm_output.c \ - drivers/mcu/stm32/pwm_output_dshot_hal.c \ - drivers/mcu/stm32/rcc_stm32.c \ - drivers/mcu/stm32/sdio_h7xx.c \ - drivers/mcu/stm32/serial_uart_hal.c \ - drivers/mcu/stm32/serial_uart_stm32h7xx.c \ - drivers/mcu/stm32/system_stm32h7xx.c \ - drivers/mcu/stm32/timer_hal.c \ - drivers/mcu/stm32/timer_stm32h7xx.c \ - drivers/mcu/stm32/transponder_ir_io_hal.c \ - drivers/mcu/stm32/camera_control.c \ - startup/stm32/system_stm32h7xx.c + adc_stm32h7xx.c \ + audio_stm32h7xx.c \ + bus_i2c_hal_init.c \ + bus_i2c_hal.c \ + bus_spi_ll.c \ + bus_quadspi_hal.c \ + bus_octospi_stm32h7xx.c \ + debug.c \ + dma_reqmap_mcu.c \ + dma_stm32h7xx.c \ + dshot_bitbang_ll.c \ + dshot_bitbang.c \ + exti.c \ + io_stm32.c \ + light_ws2811strip_hal.c \ + memprot_hal.c \ + memprot_stm32h7xx.c \ + persistent.c \ + pwm_output.c \ + pwm_output_dshot_hal.c \ + rcc_stm32.c \ + sdio_h7xx.c \ + serial_uart_hal.c \ + serial_uart_stm32h7xx.c \ + system_stm32h7xx.c \ + timer_hal.c \ + timer_stm32h7xx.c \ + transponder_ir_io_hal.c \ + camera_control_stm32.c \ + startup/system_stm32h7xx.c MCU_EXCLUDES = \ drivers/bus_i2c.c MSC_SRC = \ - drivers/mcu/stm32/usb_msc_hal.c \ + usb_msc_hal.c \ drivers/usb_msc_common.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ diff --git a/src/main/drivers/mcu/stm32/persistent.c b/src/platform/STM32/persistent.c similarity index 100% rename from src/main/drivers/mcu/stm32/persistent.c rename to src/platform/STM32/persistent.c diff --git a/src/main/drivers/mcu/stm32/platform_mcu.h b/src/platform/STM32/platform_mcu.h similarity index 97% rename from src/main/drivers/mcu/stm32/platform_mcu.h rename to src/platform/STM32/platform_mcu.h index 5aa7986484..3194535032 100644 --- a/src/main/drivers/mcu/stm32/platform_mcu.h +++ b/src/platform/STM32/platform_mcu.h @@ -32,7 +32,7 @@ #include "stm32g4xx_ll_bus.h" #include "stm32g4xx_ll_tim.h" #include "stm32g4xx_ll_system.h" -#include "drivers/mcu/stm32/stm32g4xx_ll_ex.h" +#include "stm32g4xx_ll_ex.h" // Chip Unique ID on G4 #define U_ID_0 (*(uint32_t*)UID_BASE) @@ -57,7 +57,7 @@ #include "stm32h7xx_ll_bus.h" #include "stm32h7xx_ll_tim.h" #include "stm32h7xx_ll_system.h" -#include "drivers/mcu/stm32/stm32h7xx_ll_ex.h" +#include "stm32h7xx_ll_ex.h" // Chip Unique ID on H7 #define U_ID_0 (*(uint32_t*)UID_BASE) @@ -82,7 +82,7 @@ #include "stm32f7xx_ll_bus.h" #include "stm32f7xx_ll_tim.h" #include "stm32f7xx_ll_system.h" -#include "drivers/mcu/stm32/stm32f7xx_ll_ex.h" +#include "stm32f7xx_ll_ex.h" // Chip Unique ID on F7 #define U_ID_0 (*(uint32_t*)UID_BASE) diff --git a/src/main/drivers/mcu/stm32/pwm_output.c b/src/platform/STM32/pwm_output.c similarity index 100% rename from src/main/drivers/mcu/stm32/pwm_output.c rename to src/platform/STM32/pwm_output.c diff --git a/src/main/drivers/mcu/stm32/pwm_output_dshot.c b/src/platform/STM32/pwm_output_dshot.c similarity index 100% rename from src/main/drivers/mcu/stm32/pwm_output_dshot.c rename to src/platform/STM32/pwm_output_dshot.c diff --git a/src/main/drivers/mcu/stm32/pwm_output_dshot_hal.c b/src/platform/STM32/pwm_output_dshot_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/pwm_output_dshot_hal.c rename to src/platform/STM32/pwm_output_dshot_hal.c diff --git a/src/main/drivers/mcu/stm32/rcc_stm32.c b/src/platform/STM32/rcc_stm32.c similarity index 100% rename from src/main/drivers/mcu/stm32/rcc_stm32.c rename to src/platform/STM32/rcc_stm32.c diff --git a/src/main/drivers/mcu/stm32/sdio_f4xx.c b/src/platform/STM32/sdio_f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/sdio_f4xx.c rename to src/platform/STM32/sdio_f4xx.c diff --git a/src/main/drivers/mcu/stm32/sdio_f7xx.c b/src/platform/STM32/sdio_f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/sdio_f7xx.c rename to src/platform/STM32/sdio_f7xx.c diff --git a/src/main/drivers/mcu/stm32/sdio_h7xx.c b/src/platform/STM32/sdio_h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/sdio_h7xx.c rename to src/platform/STM32/sdio_h7xx.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_hal.c b/src/platform/STM32/serial_uart_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_hal.c rename to src/platform/STM32/serial_uart_hal.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_stdperiph.c b/src/platform/STM32/serial_uart_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_stdperiph.c rename to src/platform/STM32/serial_uart_stdperiph.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_stm32f4xx.c b/src/platform/STM32/serial_uart_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_stm32f4xx.c rename to src/platform/STM32/serial_uart_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_stm32f7xx.c b/src/platform/STM32/serial_uart_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_stm32f7xx.c rename to src/platform/STM32/serial_uart_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_stm32g4xx.c b/src/platform/STM32/serial_uart_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_stm32g4xx.c rename to src/platform/STM32/serial_uart_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/serial_uart_stm32h7xx.c b/src/platform/STM32/serial_uart_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/serial_uart_stm32h7xx.c rename to src/platform/STM32/serial_uart_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/serial_usb_vcp.c b/src/platform/STM32/serial_usb_vcp.c similarity index 99% rename from src/main/drivers/mcu/stm32/serial_usb_vcp.c rename to src/platform/STM32/serial_usb_vcp.c index 30efc169f8..046c28bd12 100644 --- a/src/main/drivers/mcu/stm32/serial_usb_vcp.c +++ b/src/platform/STM32/serial_usb_vcp.c @@ -41,7 +41,7 @@ #endif #include "drivers/usb_io.h" #elif defined(STM32F7) || defined(STM32H7) || defined(STM32G4) -#include "drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.h" +#include "vcp_hal/usbd_cdc_interface.h" #include "drivers/usb_io.h" #ifdef USE_USB_CDC_HID #include "usbd_ioreq.h" diff --git a/src/main/startup/stm32/startup_stm32f40xx.s b/src/platform/STM32/startup/startup_stm32f40xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f40xx.s rename to src/platform/STM32/startup/startup_stm32f40xx.s diff --git a/src/main/startup/stm32/startup_stm32f411xe.s b/src/platform/STM32/startup/startup_stm32f411xe.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f411xe.s rename to src/platform/STM32/startup/startup_stm32f411xe.s diff --git a/src/main/startup/stm32/startup_stm32f446xx.s b/src/platform/STM32/startup/startup_stm32f446xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f446xx.s rename to src/platform/STM32/startup/startup_stm32f446xx.s diff --git a/src/main/startup/stm32/startup_stm32f722xx.s b/src/platform/STM32/startup/startup_stm32f722xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f722xx.s rename to src/platform/STM32/startup/startup_stm32f722xx.s diff --git a/src/main/startup/stm32/startup_stm32f745xx.s b/src/platform/STM32/startup/startup_stm32f745xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f745xx.s rename to src/platform/STM32/startup/startup_stm32f745xx.s diff --git a/src/main/startup/stm32/startup_stm32f746xx.s b/src/platform/STM32/startup/startup_stm32f746xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f746xx.s rename to src/platform/STM32/startup/startup_stm32f746xx.s diff --git a/src/main/startup/stm32/startup_stm32f765xx.s b/src/platform/STM32/startup/startup_stm32f765xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32f765xx.s rename to src/platform/STM32/startup/startup_stm32f765xx.s diff --git a/src/main/startup/stm32/startup_stm32g474xx.s b/src/platform/STM32/startup/startup_stm32g474xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32g474xx.s rename to src/platform/STM32/startup/startup_stm32g474xx.s diff --git a/src/main/startup/stm32/startup_stm32h563xx.s b/src/platform/STM32/startup/startup_stm32h563xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32h563xx.s rename to src/platform/STM32/startup/startup_stm32h563xx.s diff --git a/src/main/startup/stm32/startup_stm32h723xx.s b/src/platform/STM32/startup/startup_stm32h723xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32h723xx.s rename to src/platform/STM32/startup/startup_stm32h723xx.s diff --git a/src/main/startup/stm32/startup_stm32h730xx.s b/src/platform/STM32/startup/startup_stm32h730xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32h730xx.s rename to src/platform/STM32/startup/startup_stm32h730xx.s diff --git a/src/main/startup/stm32/startup_stm32h743xx.s b/src/platform/STM32/startup/startup_stm32h743xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32h743xx.s rename to src/platform/STM32/startup/startup_stm32h743xx.s diff --git a/src/main/startup/stm32/startup_stm32h7a3xx.s b/src/platform/STM32/startup/startup_stm32h7a3xx.s similarity index 100% rename from src/main/startup/stm32/startup_stm32h7a3xx.s rename to src/platform/STM32/startup/startup_stm32h7a3xx.s diff --git a/src/main/startup/stm32/stm32f4xx_hal_conf.h b/src/platform/STM32/startup/stm32f4xx_hal_conf.h similarity index 100% rename from src/main/startup/stm32/stm32f4xx_hal_conf.h rename to src/platform/STM32/startup/stm32f4xx_hal_conf.h diff --git a/src/main/startup/stm32/stm32f7xx_hal_conf.h b/src/platform/STM32/startup/stm32f7xx_hal_conf.h similarity index 100% rename from src/main/startup/stm32/stm32f7xx_hal_conf.h rename to src/platform/STM32/startup/stm32f7xx_hal_conf.h diff --git a/src/main/startup/stm32/stm32g4xx_hal_conf.h b/src/platform/STM32/startup/stm32g4xx_hal_conf.h similarity index 100% rename from src/main/startup/stm32/stm32g4xx_hal_conf.h rename to src/platform/STM32/startup/stm32g4xx_hal_conf.h diff --git a/src/main/startup/stm32/stm32h5xx_hal_conf.h b/src/platform/STM32/startup/stm32h5xx_hal_conf.h similarity index 100% rename from src/main/startup/stm32/stm32h5xx_hal_conf.h rename to src/platform/STM32/startup/stm32h5xx_hal_conf.h diff --git a/src/main/startup/stm32/stm32h7xx_hal_conf.h b/src/platform/STM32/startup/stm32h7xx_hal_conf.h similarity index 100% rename from src/main/startup/stm32/stm32h7xx_hal_conf.h rename to src/platform/STM32/startup/stm32h7xx_hal_conf.h diff --git a/src/main/startup/stm32/system_stm32f4xx.c b/src/platform/STM32/startup/system_stm32f4xx.c similarity index 100% rename from src/main/startup/stm32/system_stm32f4xx.c rename to src/platform/STM32/startup/system_stm32f4xx.c diff --git a/src/main/startup/stm32/system_stm32f4xx.h b/src/platform/STM32/startup/system_stm32f4xx.h similarity index 100% rename from src/main/startup/stm32/system_stm32f4xx.h rename to src/platform/STM32/startup/system_stm32f4xx.h diff --git a/src/main/startup/stm32/system_stm32f7xx.c b/src/platform/STM32/startup/system_stm32f7xx.c similarity index 100% rename from src/main/startup/stm32/system_stm32f7xx.c rename to src/platform/STM32/startup/system_stm32f7xx.c diff --git a/src/main/startup/stm32/system_stm32f7xx.h b/src/platform/STM32/startup/system_stm32f7xx.h similarity index 100% rename from src/main/startup/stm32/system_stm32f7xx.h rename to src/platform/STM32/startup/system_stm32f7xx.h diff --git a/src/main/startup/stm32/system_stm32g4xx.c b/src/platform/STM32/startup/system_stm32g4xx.c similarity index 100% rename from src/main/startup/stm32/system_stm32g4xx.c rename to src/platform/STM32/startup/system_stm32g4xx.c diff --git a/src/main/startup/stm32/system_stm32g4xx.h b/src/platform/STM32/startup/system_stm32g4xx.h similarity index 100% rename from src/main/startup/stm32/system_stm32g4xx.h rename to src/platform/STM32/startup/system_stm32g4xx.h diff --git a/src/main/startup/stm32/system_stm32h5xx.c b/src/platform/STM32/startup/system_stm32h5xx.c similarity index 100% rename from src/main/startup/stm32/system_stm32h5xx.c rename to src/platform/STM32/startup/system_stm32h5xx.c diff --git a/src/main/startup/stm32/system_stm32h5xx.h b/src/platform/STM32/startup/system_stm32h5xx.h similarity index 100% rename from src/main/startup/stm32/system_stm32h5xx.h rename to src/platform/STM32/startup/system_stm32h5xx.h diff --git a/src/main/startup/stm32/system_stm32h7xx.c b/src/platform/STM32/startup/system_stm32h7xx.c similarity index 100% rename from src/main/startup/stm32/system_stm32h7xx.c rename to src/platform/STM32/startup/system_stm32h7xx.c diff --git a/src/main/startup/stm32/system_stm32h7xx.h b/src/platform/STM32/startup/system_stm32h7xx.h similarity index 100% rename from src/main/startup/stm32/system_stm32h7xx.h rename to src/platform/STM32/startup/system_stm32h7xx.h diff --git a/src/main/drivers/mcu/stm32/stm32f7xx_ll_ex.h b/src/platform/STM32/stm32f7xx_ll_ex.h similarity index 100% rename from src/main/drivers/mcu/stm32/stm32f7xx_ll_ex.h rename to src/platform/STM32/stm32f7xx_ll_ex.h diff --git a/src/main/drivers/mcu/stm32/stm32g4xx_ll_ex.h b/src/platform/STM32/stm32g4xx_ll_ex.h similarity index 100% rename from src/main/drivers/mcu/stm32/stm32g4xx_ll_ex.h rename to src/platform/STM32/stm32g4xx_ll_ex.h diff --git a/src/main/drivers/mcu/stm32/stm32h7xx_ll_ex.h b/src/platform/STM32/stm32h7xx_ll_ex.h similarity index 100% rename from src/main/drivers/mcu/stm32/stm32h7xx_ll_ex.h rename to src/platform/STM32/stm32h7xx_ll_ex.h diff --git a/src/main/drivers/mcu/stm32/system_stm32f4xx.c b/src/platform/STM32/system_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/system_stm32f4xx.c rename to src/platform/STM32/system_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/system_stm32f7xx.c b/src/platform/STM32/system_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/system_stm32f7xx.c rename to src/platform/STM32/system_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/system_stm32g4xx.c b/src/platform/STM32/system_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/system_stm32g4xx.c rename to src/platform/STM32/system_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/system_stm32h5xx.c b/src/platform/STM32/system_stm32h5xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/system_stm32h5xx.c rename to src/platform/STM32/system_stm32h5xx.c diff --git a/src/main/drivers/mcu/stm32/system_stm32h7xx.c b/src/platform/STM32/system_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/system_stm32h7xx.c rename to src/platform/STM32/system_stm32h7xx.c diff --git a/src/main/target/STM32F405/target.h b/src/platform/STM32/target/STM32F405/target.h similarity index 100% rename from src/main/target/STM32F405/target.h rename to src/platform/STM32/target/STM32F405/target.h diff --git a/src/main/target/STM32F405/target.mk b/src/platform/STM32/target/STM32F405/target.mk similarity index 100% rename from src/main/target/STM32F405/target.mk rename to src/platform/STM32/target/STM32F405/target.mk diff --git a/src/main/target/STM32F411/target.h b/src/platform/STM32/target/STM32F411/target.h similarity index 100% rename from src/main/target/STM32F411/target.h rename to src/platform/STM32/target/STM32F411/target.h diff --git a/src/main/target/STM32F411/target.mk b/src/platform/STM32/target/STM32F411/target.mk similarity index 100% rename from src/main/target/STM32F411/target.mk rename to src/platform/STM32/target/STM32F411/target.mk diff --git a/src/main/target/STM32F446/target.h b/src/platform/STM32/target/STM32F446/target.h similarity index 100% rename from src/main/target/STM32F446/target.h rename to src/platform/STM32/target/STM32F446/target.h diff --git a/src/main/target/STM32F446/target.mk b/src/platform/STM32/target/STM32F446/target.mk similarity index 100% rename from src/main/target/STM32F446/target.mk rename to src/platform/STM32/target/STM32F446/target.mk diff --git a/src/main/target/STM32F745/target.h b/src/platform/STM32/target/STM32F745/target.h similarity index 100% rename from src/main/target/STM32F745/target.h rename to src/platform/STM32/target/STM32F745/target.h diff --git a/src/main/target/STM32F745/target.mk b/src/platform/STM32/target/STM32F745/target.mk similarity index 100% rename from src/main/target/STM32F745/target.mk rename to src/platform/STM32/target/STM32F745/target.mk diff --git a/src/main/target/STM32F7X2/target.h b/src/platform/STM32/target/STM32F7X2/target.h similarity index 100% rename from src/main/target/STM32F7X2/target.h rename to src/platform/STM32/target/STM32F7X2/target.h diff --git a/src/main/target/STM32F7X2/target.mk b/src/platform/STM32/target/STM32F7X2/target.mk similarity index 100% rename from src/main/target/STM32F7X2/target.mk rename to src/platform/STM32/target/STM32F7X2/target.mk diff --git a/src/main/target/STM32G47X/target.h b/src/platform/STM32/target/STM32G47X/target.h similarity index 100% rename from src/main/target/STM32G47X/target.h rename to src/platform/STM32/target/STM32G47X/target.h diff --git a/src/main/target/STM32G47X/target.mk b/src/platform/STM32/target/STM32G47X/target.mk similarity index 100% rename from src/main/target/STM32G47X/target.mk rename to src/platform/STM32/target/STM32G47X/target.mk diff --git a/src/main/target/STM32H563/.exclude b/src/platform/STM32/target/STM32H563/.exclude similarity index 100% rename from src/main/target/STM32H563/.exclude rename to src/platform/STM32/target/STM32H563/.exclude diff --git a/src/main/target/STM32H563/target.h b/src/platform/STM32/target/STM32H563/target.h similarity index 100% rename from src/main/target/STM32H563/target.h rename to src/platform/STM32/target/STM32H563/target.h diff --git a/src/main/target/STM32H563/target.mk b/src/platform/STM32/target/STM32H563/target.mk similarity index 100% rename from src/main/target/STM32H563/target.mk rename to src/platform/STM32/target/STM32H563/target.mk diff --git a/src/main/target/STM32H723/readme.txt b/src/platform/STM32/target/STM32H723/readme.txt similarity index 100% rename from src/main/target/STM32H723/readme.txt rename to src/platform/STM32/target/STM32H723/readme.txt diff --git a/src/main/target/STM32H723/target.h b/src/platform/STM32/target/STM32H723/target.h similarity index 100% rename from src/main/target/STM32H723/target.h rename to src/platform/STM32/target/STM32H723/target.h diff --git a/src/main/target/STM32H723/target.mk b/src/platform/STM32/target/STM32H723/target.mk similarity index 100% rename from src/main/target/STM32H723/target.mk rename to src/platform/STM32/target/STM32H723/target.mk diff --git a/src/main/target/STM32H725/readme.txt b/src/platform/STM32/target/STM32H725/readme.txt similarity index 100% rename from src/main/target/STM32H725/readme.txt rename to src/platform/STM32/target/STM32H725/readme.txt diff --git a/src/main/target/STM32H725/target.h b/src/platform/STM32/target/STM32H725/target.h similarity index 100% rename from src/main/target/STM32H725/target.h rename to src/platform/STM32/target/STM32H725/target.h diff --git a/src/main/target/STM32H725/target.mk b/src/platform/STM32/target/STM32H725/target.mk similarity index 100% rename from src/main/target/STM32H725/target.mk rename to src/platform/STM32/target/STM32H725/target.mk diff --git a/src/main/target/STM32H730/target.h b/src/platform/STM32/target/STM32H730/target.h similarity index 100% rename from src/main/target/STM32H730/target.h rename to src/platform/STM32/target/STM32H730/target.h diff --git a/src/main/target/STM32H730/target.mk b/src/platform/STM32/target/STM32H730/target.mk similarity index 100% rename from src/main/target/STM32H730/target.mk rename to src/platform/STM32/target/STM32H730/target.mk diff --git a/src/main/target/STM32H743/target.h b/src/platform/STM32/target/STM32H743/target.h similarity index 100% rename from src/main/target/STM32H743/target.h rename to src/platform/STM32/target/STM32H743/target.h diff --git a/src/main/target/STM32H743/target.mk b/src/platform/STM32/target/STM32H743/target.mk similarity index 100% rename from src/main/target/STM32H743/target.mk rename to src/platform/STM32/target/STM32H743/target.mk diff --git a/src/main/target/STM32H750/target.h b/src/platform/STM32/target/STM32H750/target.h similarity index 100% rename from src/main/target/STM32H750/target.h rename to src/platform/STM32/target/STM32H750/target.h diff --git a/src/main/target/STM32H750/target.mk b/src/platform/STM32/target/STM32H750/target.mk similarity index 100% rename from src/main/target/STM32H750/target.mk rename to src/platform/STM32/target/STM32H750/target.mk diff --git a/src/main/drivers/mcu/stm32/timer_def.h b/src/platform/STM32/timer_def.h similarity index 100% rename from src/main/drivers/mcu/stm32/timer_def.h rename to src/platform/STM32/timer_def.h diff --git a/src/main/drivers/mcu/stm32/timer_hal.c b/src/platform/STM32/timer_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_hal.c rename to src/platform/STM32/timer_hal.c diff --git a/src/main/drivers/mcu/stm32/timer_stdperiph.c b/src/platform/STM32/timer_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_stdperiph.c rename to src/platform/STM32/timer_stdperiph.c diff --git a/src/main/drivers/mcu/stm32/timer_stm32f4xx.c b/src/platform/STM32/timer_stm32f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_stm32f4xx.c rename to src/platform/STM32/timer_stm32f4xx.c diff --git a/src/main/drivers/mcu/stm32/timer_stm32f7xx.c b/src/platform/STM32/timer_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_stm32f7xx.c rename to src/platform/STM32/timer_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/timer_stm32g4xx.c b/src/platform/STM32/timer_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_stm32g4xx.c rename to src/platform/STM32/timer_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/timer_stm32h7xx.c b/src/platform/STM32/timer_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/timer_stm32h7xx.c rename to src/platform/STM32/timer_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/transponder_ir_io_hal.c b/src/platform/STM32/transponder_ir_io_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/transponder_ir_io_hal.c rename to src/platform/STM32/transponder_ir_io_hal.c diff --git a/src/main/drivers/mcu/stm32/transponder_ir_io_stdperiph.c b/src/platform/STM32/transponder_ir_io_stdperiph.c similarity index 100% rename from src/main/drivers/mcu/stm32/transponder_ir_io_stdperiph.c rename to src/platform/STM32/transponder_ir_io_stdperiph.c diff --git a/src/main/drivers/mcu/stm32/usb_msc_f4xx.c b/src/platform/STM32/usb_msc_f4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/usb_msc_f4xx.c rename to src/platform/STM32/usb_msc_f4xx.c diff --git a/src/main/drivers/mcu/stm32/usb_msc_hal.c b/src/platform/STM32/usb_msc_hal.c similarity index 100% rename from src/main/drivers/mcu/stm32/usb_msc_hal.c rename to src/platform/STM32/usb_msc_hal.c diff --git a/src/main/drivers/mcu/stm32/usbd_msc_desc.c b/src/platform/STM32/usbd_msc_desc.c similarity index 100% rename from src/main/drivers/mcu/stm32/usbd_msc_desc.c rename to src/platform/STM32/usbd_msc_desc.c diff --git a/src/main/drivers/mcu/stm32/usbd_msc_desc.h b/src/platform/STM32/usbd_msc_desc.h similarity index 100% rename from src/main/drivers/mcu/stm32/usbd_msc_desc.h rename to src/platform/STM32/usbd_msc_desc.h diff --git a/src/main/drivers/mcu/stm32/vcp/hw_config.c b/src/platform/STM32/vcp/hw_config.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/hw_config.c rename to src/platform/STM32/vcp/hw_config.c diff --git a/src/main/drivers/mcu/stm32/vcp/hw_config.h b/src/platform/STM32/vcp/hw_config.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/hw_config.h rename to src/platform/STM32/vcp/hw_config.h diff --git a/src/main/drivers/mcu/stm32/vcp/platform_config.h b/src/platform/STM32/vcp/platform_config.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/platform_config.h rename to src/platform/STM32/vcp/platform_config.h diff --git a/src/main/drivers/mcu/stm32/vcp/stm32_it.c b/src/platform/STM32/vcp/stm32_it.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/stm32_it.c rename to src/platform/STM32/vcp/stm32_it.c diff --git a/src/main/drivers/mcu/stm32/vcp/stm32_it.h b/src/platform/STM32/vcp/stm32_it.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/stm32_it.h rename to src/platform/STM32/vcp/stm32_it.h diff --git a/src/main/drivers/mcu/stm32/vcp/usb_conf.h b/src/platform/STM32/vcp/usb_conf.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_conf.h rename to src/platform/STM32/vcp/usb_conf.h diff --git a/src/main/drivers/mcu/stm32/vcp/usb_desc.c b/src/platform/STM32/vcp/usb_desc.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_desc.c rename to src/platform/STM32/vcp/usb_desc.c diff --git a/src/main/drivers/mcu/stm32/vcp/usb_desc.h b/src/platform/STM32/vcp/usb_desc.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_desc.h rename to src/platform/STM32/vcp/usb_desc.h diff --git a/src/main/drivers/mcu/stm32/vcp/usb_endp.c b/src/platform/STM32/vcp/usb_endp.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_endp.c rename to src/platform/STM32/vcp/usb_endp.c diff --git a/src/main/drivers/mcu/stm32/vcp/usb_istr.c b/src/platform/STM32/vcp/usb_istr.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_istr.c rename to src/platform/STM32/vcp/usb_istr.c diff --git a/src/main/drivers/mcu/stm32/vcp/usb_istr.h b/src/platform/STM32/vcp/usb_istr.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_istr.h rename to src/platform/STM32/vcp/usb_istr.h diff --git a/src/main/drivers/mcu/stm32/vcp/usb_prop.c b/src/platform/STM32/vcp/usb_prop.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_prop.c rename to src/platform/STM32/vcp/usb_prop.c diff --git a/src/main/drivers/mcu/stm32/vcp/usb_prop.h b/src/platform/STM32/vcp/usb_prop.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_prop.h rename to src/platform/STM32/vcp/usb_prop.h diff --git a/src/main/drivers/mcu/stm32/vcp/usb_pwr.c b/src/platform/STM32/vcp/usb_pwr.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_pwr.c rename to src/platform/STM32/vcp/usb_pwr.c diff --git a/src/main/drivers/mcu/stm32/vcp/usb_pwr.h b/src/platform/STM32/vcp/usb_pwr.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp/usb_pwr.h rename to src/platform/STM32/vcp/usb_pwr.h diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c b/src/platform/STM32/vcp_hal/usbd_cdc_hid.c similarity index 99% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c rename to src/platform/STM32/vcp_hal/usbd_cdc_hid.c index 55db69b824..4727b4a29f 100644 --- a/src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_hid.c +++ b/src/platform/STM32/vcp_hal/usbd_cdc_hid.c @@ -35,7 +35,7 @@ #include "drivers/serial_usb_vcp.h" #include "usbd_hid.h" -#include "drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.h" +#include "vcp_hal/usbd_cdc_interface.h" #define USB_HID_CDC_CONFIG_DESC_SIZ (USB_HID_CONFIG_DESC_SIZ - 9 + USB_CDC_CONFIG_DESC_SIZ + 8) diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c b/src/platform/STM32/vcp_hal/usbd_cdc_interface.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.c rename to src/platform/STM32/vcp_hal/usbd_cdc_interface.c diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.h b/src/platform/STM32/vcp_hal/usbd_cdc_interface.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_cdc_interface.h rename to src/platform/STM32/vcp_hal/usbd_cdc_interface.h diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_conf.h b/src/platform/STM32/vcp_hal/usbd_conf.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_conf.h rename to src/platform/STM32/vcp_hal/usbd_conf.h diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32f7xx.c b/src/platform/STM32/vcp_hal/usbd_conf_stm32f7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32f7xx.c rename to src/platform/STM32/vcp_hal/usbd_conf_stm32f7xx.c diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32g4xx.c b/src/platform/STM32/vcp_hal/usbd_conf_stm32g4xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32g4xx.c rename to src/platform/STM32/vcp_hal/usbd_conf_stm32g4xx.c diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32h7xx.c b/src/platform/STM32/vcp_hal/usbd_conf_stm32h7xx.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_conf_stm32h7xx.c rename to src/platform/STM32/vcp_hal/usbd_conf_stm32h7xx.c diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_desc.c b/src/platform/STM32/vcp_hal/usbd_desc.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_desc.c rename to src/platform/STM32/vcp_hal/usbd_desc.c diff --git a/src/main/drivers/mcu/stm32/vcp_hal/usbd_desc.h b/src/platform/STM32/vcp_hal/usbd_desc.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcp_hal/usbd_desc.h rename to src/platform/STM32/vcp_hal/usbd_desc.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/stm32f4xx_it.c b/src/platform/STM32/vcpf4/stm32f4xx_it.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/stm32f4xx_it.c rename to src/platform/STM32/vcpf4/stm32f4xx_it.c diff --git a/src/main/drivers/mcu/stm32/vcpf4/stm32f4xx_it.h b/src/platform/STM32/vcpf4/stm32f4xx_it.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/stm32f4xx_it.h rename to src/platform/STM32/vcpf4/stm32f4xx_it.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/usb_bsp.c b/src/platform/STM32/vcpf4/usb_bsp.c similarity index 98% rename from src/main/drivers/mcu/stm32/vcpf4/usb_bsp.c rename to src/platform/STM32/vcpf4/usb_bsp.c index 690f6d704d..379a29ce25 100644 --- a/src/main/drivers/mcu/stm32/vcpf4/usb_bsp.c +++ b/src/platform/STM32/vcpf4/usb_bsp.c @@ -27,8 +27,8 @@ #include "usb_bsp.h" #include "usbd_conf.h" #include "stm32f4xx_conf.h" -#include "../drivers/nvic.h" -#include "../drivers/io.h" +#include "drivers/nvic.h" +#include "drivers/io.h" void USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev) { diff --git a/src/main/drivers/mcu/stm32/vcpf4/usb_cdc_hid.c b/src/platform/STM32/vcpf4/usb_cdc_hid.c similarity index 95% rename from src/main/drivers/mcu/stm32/vcpf4/usb_cdc_hid.c rename to src/platform/STM32/vcpf4/usb_cdc_hid.c index a96deb7347..d39a92942e 100644 --- a/src/main/drivers/mcu/stm32/vcpf4/usb_cdc_hid.c +++ b/src/platform/STM32/vcpf4/usb_cdc_hid.c @@ -25,7 +25,7 @@ #ifdef USE_USB_CDC_HID -#include "drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.h" +#include "vcpf4/usbd_cdc_vcp.h" #include "usbd_hid_core.h" void sendReport(uint8_t *report, uint8_t len) diff --git a/src/main/drivers/mcu/stm32/vcpf4/usb_conf.h b/src/platform/STM32/vcpf4/usb_conf.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usb_conf.h rename to src/platform/STM32/vcpf4/usb_conf.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.c b/src/platform/STM32/vcpf4/usbd_cdc_vcp.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.c rename to src/platform/STM32/vcpf4/usbd_cdc_vcp.c diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.h b/src/platform/STM32/vcpf4/usbd_cdc_vcp.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_cdc_vcp.h rename to src/platform/STM32/vcpf4/usbd_cdc_vcp.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_conf.h b/src/platform/STM32/vcpf4/usbd_conf.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_conf.h rename to src/platform/STM32/vcpf4/usbd_conf.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_desc.c b/src/platform/STM32/vcpf4/usbd_desc.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_desc.c rename to src/platform/STM32/vcpf4/usbd_desc.c diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_desc.h b/src/platform/STM32/vcpf4/usbd_desc.h similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_desc.h rename to src/platform/STM32/vcpf4/usbd_desc.h diff --git a/src/main/drivers/mcu/stm32/vcpf4/usbd_usr.c b/src/platform/STM32/vcpf4/usbd_usr.c similarity index 100% rename from src/main/drivers/mcu/stm32/vcpf4/usbd_usr.c rename to src/platform/STM32/vcpf4/usbd_usr.c