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:
parent
9f8ad1aa44
commit
f8103b8c86
37 changed files with 904 additions and 484 deletions
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue