1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-21 15:25:36 +03:00

Added DMA mapping (readonly for now), and enabled timer management for all F4 boards.

Converting the universal target as well.

Simplified timer management some.

Added F722 support for good measuer.

Fixed SITL, tests.

Cleanup after rebase.

Added support for all timer consumers and F7.

Fixed 'USE_DMA_SPEC' for F3, some cleanups.
This commit is contained in:
mikeller 2019-02-18 02:09:06 +13:00
parent 9f8ad1aa44
commit f8103b8c86
37 changed files with 904 additions and 484 deletions

View file

@ -106,13 +106,21 @@ typedef struct timerHardware_s {
uint8_t alternateFunction;
#endif
#if defined(USE_DSHOT) || defined(USE_LED_STRIP) || defined(USE_TRANSPONDER)
#if defined(USE_DMA_SPEC)
#if defined(STM32F4) || defined(STM32F7)
DMA_Stream_TypeDef *dmaRefConfigured;
uint32_t dmaChannelConfigured;
#else
DMA_Channel_TypeDef *dmaRefConfigured;
#endif
#else
#if defined(STM32F4) || defined(STM32F7)
DMA_Stream_TypeDef *dmaRef;
uint32_t dmaChannel;
#else
DMA_Channel_TypeDef *dmaRef;
#endif
uint8_t dmaIrqHandler;
#endif
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7)
// TIMUP
#ifdef STM32F3
@ -152,7 +160,49 @@ typedef enum {
#define MHZ_TO_HZ(x) ((x) * 1000000)
#if !defined(USE_UNIFIED_TARGET)
extern const timerHardware_t timerHardware[];
#endif
#if defined(USE_TIMER_MGMT)
#if defined(STM32F40_41xxx)
#define FULL_TIMER_CHANNEL_COUNT 70
#elif defined(STM32F722xx)
#define FULL_TIMER_CHANNEL_COUNT 70
#endif
extern const timerHardware_t fullTimerHardware[];
#define TIMER_CHANNEL_COUNT FULL_TIMER_CHANNEL_COUNT
#define TIMER_HARDWARE fullTimerHardware
#if defined(STM32F7) || defined(STM32F4)
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(6) | TIM_N(7) | TIM_N(8) | TIM_N(9) | TIM_N(10) | TIM_N(11) | TIM_N(12) | TIM_N(13) | TIM_N(14) )
#elif defined(STM32F3)
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(6) | TIM_N(7) | TIM_N(8) | TIM_N(15) | TIM_N(16) | TIM_N(17) )
#elif defined(STM32F1)
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) )
#else
#error "No timer / channel tag definition found for CPU"
#endif
#else
#define TIMER_CHANNEL_COUNT USABLE_TIMER_CHANNEL_COUNT
#define TIMER_HARDWARE timerHardware
#endif // USE_TIMER_MGMT
extern const timerDef_t timerDefinitions[];
typedef enum {