1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 19:40:31 +03:00

REFACTOR: Adding DMA_FIRST_HANDLER

dmaIdentifier_e could be zero based in the future and align to descriptor array index directly

Also removed unused DMA_INPUT_STRING
This commit is contained in:
blckmn 2025-06-25 04:19:26 +10:00
parent 3370752442
commit cbdc8d83ae
6 changed files with 19 additions and 12 deletions

View file

@ -5329,7 +5329,7 @@ static void showDma(void)
cliPrintLine("Currently active DMA:"); cliPrintLine("Currently active DMA:");
cliRepeat('-', 20); cliRepeat('-', 20);
#endif #endif
for (int i = 1; i <= DMA_LAST_HANDLER; i++) { for (int i = DMA_FIRST_HANDLER; i <= DMA_LAST_HANDLER; i++) {
const resourceOwner_t *owner = dmaGetOwner(i); const resourceOwner_t *owner = dmaGetOwner(i);
cliPrintf(DMA_OUTPUT_STRING, DMA_DEVICE_NO(i), DMA_DEVICE_INDEX(i)); cliPrintf(DMA_OUTPUT_STRING, DMA_DEVICE_NO(i), DMA_DEVICE_INDEX(i));

View file

@ -58,8 +58,6 @@ typedef struct dmaChannelDescriptor_s {
#endif #endif
} dmaChannelDescriptor_t; } dmaChannelDescriptor_t;
#define DMA_IDENTIFIER_TO_INDEX(x) ((x) - 1)
void dmaMuxEnable(dmaIdentifier_e identifier, uint32_t dmaMuxId); void dmaMuxEnable(dmaIdentifier_e identifier, uint32_t dmaMuxId);
dmaIdentifier_e dmaAllocate(dmaIdentifier_e identifier, resourceOwner_e owner, uint8_t resourceIndex); dmaIdentifier_e dmaAllocate(dmaIdentifier_e identifier, resourceOwner_e owner, uint8_t resourceIndex);

View file

@ -32,7 +32,8 @@
typedef enum { typedef enum {
DMA_NONE = 0, DMA_NONE = 0,
DMA1_ST0_HANDLER = 1, DMA_FIRST_HANDLER = 1,
DMA1_ST0_HANDLER = DMA_FIRST_HANDLER,
DMA1_ST1_HANDLER, DMA1_ST1_HANDLER,
DMA1_ST2_HANDLER, DMA1_ST2_HANDLER,
DMA1_ST3_HANDLER, DMA1_ST3_HANDLER,
@ -55,7 +56,8 @@ typedef enum {
#define DMA_DEVICE_INDEX(x) ((((x)-1) % 8)) #define DMA_DEVICE_INDEX(x) ((((x)-1) % 8))
#define DMA_OUTPUT_INDEX 0 #define DMA_OUTPUT_INDEX 0
#define DMA_OUTPUT_STRING "DMA%d Stream %d:" #define DMA_OUTPUT_STRING "DMA%d Stream %d:"
#define DMA_INPUT_STRING "DMA%d_ST%d"
#define DMA_IDENTIFIER_TO_INDEX(x) ((x) - 1)
#define DEFINE_DMA_CHANNEL(d, s, f) { \ #define DEFINE_DMA_CHANNEL(d, s, f) { \
.dma = d, \ .dma = d, \

View file

@ -32,7 +32,8 @@
typedef enum { typedef enum {
DMA_NONE = 0, DMA_NONE = 0,
DMA1_CH1_HANDLER = 1, DMA_FIRST_HANDLER = 1,
DMA1_CH1_HANDLER = DMA_FIRST_HANDLER,
DMA1_CH2_HANDLER, DMA1_CH2_HANDLER,
DMA1_CH3_HANDLER, DMA1_CH3_HANDLER,
DMA1_CH4_HANDLER, DMA1_CH4_HANDLER,
@ -52,11 +53,12 @@ typedef enum {
#define DMA_DEVICE_NO(x) ((((x)-1) / 7) + 1) #define DMA_DEVICE_NO(x) ((((x)-1) / 7) + 1)
#define DMA_DEVICE_INDEX(x) ((((x)-1) % 7) + 1) #define DMA_DEVICE_INDEX(x) ((((x)-1) % 7) + 1)
#define DMA_IDENTIFIER_TO_INDEX(x) ((x) - 1)
uint32_t dmaGetChannel(const uint8_t channel); uint32_t dmaGetChannel(const uint8_t channel);
#define DMA_OUTPUT_INDEX 0 #define DMA_OUTPUT_INDEX 0
#define DMA_OUTPUT_STRING "DMA%d Channel %d:" #define DMA_OUTPUT_STRING "DMA%d Channel %d:"
#define DMA_INPUT_STRING "DMA%d_CH%d"
#define DEFINE_DMA_CHANNEL(d, c, f) { \ #define DEFINE_DMA_CHANNEL(d, c, f) { \
.dma = d, \ .dma = d, \

View file

@ -25,3 +25,5 @@
DMA_NONE = 0, DMA_NONE = 0,
DMA_LAST_HANDLER = DMA_NONE DMA_LAST_HANDLER = DMA_NONE
} dmaIdentifier_e; } dmaIdentifier_e;
#define DMA_IDENTIFIER_TO_INDEX(x) ((x) - 1)

View file

@ -23,6 +23,8 @@
#include "platform.h" #include "platform.h"
#define DMA_IDENTIFIER_TO_INDEX(x) ((x) - 1)
#if defined(STM32F4) || defined(STM32F7) || defined(STM32G4) || defined(STM32H7) || defined(APM32F4) #if defined(STM32F4) || defined(STM32F7) || defined(STM32G4) || defined(STM32H7) || defined(APM32F4)
#define PLATFORM_TRAIT_DMA_STREAM_REQUIRED 1 #define PLATFORM_TRAIT_DMA_STREAM_REQUIRED 1
#endif #endif
@ -40,7 +42,8 @@
typedef enum { typedef enum {
DMA_NONE = 0, DMA_NONE = 0,
DMA1_ST0_HANDLER = 1, DMA_FIRST_HANDLER = 1,
DMA1_ST0_HANDLER = DMA_FIRST_HANDLER,
DMA1_ST1_HANDLER, DMA1_ST1_HANDLER,
DMA1_ST2_HANDLER, DMA1_ST2_HANDLER,
DMA1_ST3_HANDLER, DMA1_ST3_HANDLER,
@ -63,7 +66,6 @@ typedef enum {
#define DMA_DEVICE_INDEX(x) ((((x)-1) % 8)) #define DMA_DEVICE_INDEX(x) ((((x)-1) % 8))
#define DMA_OUTPUT_INDEX 0 #define DMA_OUTPUT_INDEX 0
#define DMA_OUTPUT_STRING "DMA%d Stream %d:" #define DMA_OUTPUT_STRING "DMA%d Stream %d:"
#define DMA_INPUT_STRING "DMA%d_ST%d"
#define DEFINE_DMA_CHANNEL(d, s, f) { \ #define DEFINE_DMA_CHANNEL(d, s, f) { \
.dma = d, \ .dma = d, \
@ -101,7 +103,8 @@ void dmaMuxEnable(dmaIdentifier_e identifier, uint32_t dmaMuxId);
typedef enum { typedef enum {
DMA_NONE = 0, DMA_NONE = 0,
DMA1_CH1_HANDLER = 1, DMA_FIRST_HANDLER = 1,
DMA1_CH1_HANDLER = DMA_FIRST_HANDLER,
DMA1_CH2_HANDLER, DMA1_CH2_HANDLER,
DMA1_CH3_HANDLER, DMA1_CH3_HANDLER,
DMA1_CH4_HANDLER, DMA1_CH4_HANDLER,
@ -129,7 +132,8 @@ uint32_t dmaGetChannel(const uint8_t channel);
typedef enum { typedef enum {
DMA_NONE = 0, DMA_NONE = 0,
DMA1_CH1_HANDLER = 1, DMA_FIRST_HANDLER = 1,
DMA1_CH1_HANDLER = DMA_FIRST_HANDLER,
DMA1_CH2_HANDLER, DMA1_CH2_HANDLER,
DMA1_CH3_HANDLER, DMA1_CH3_HANDLER,
DMA1_CH4_HANDLER, DMA1_CH4_HANDLER,
@ -146,7 +150,6 @@ typedef enum {
#define DMA_OUTPUT_INDEX 0 #define DMA_OUTPUT_INDEX 0
#define DMA_OUTPUT_STRING "DMA%d Channel %d:" #define DMA_OUTPUT_STRING "DMA%d Channel %d:"
#define DMA_INPUT_STRING "DMA%d_CH%d"
#define DEFINE_DMA_CHANNEL(d, c, f) { \ #define DEFINE_DMA_CHANNEL(d, c, f) { \
.dma = d, \ .dma = d, \