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

STM32H7 - Add support for GPIO Port I to def_generated source. Rebuild

io_def_generated.h
This commit is contained in:
Dominic Clifton 2021-04-15 15:52:42 +02:00 committed by Dominic Clifton
parent faa1fdc3d6
commit 121ebe7fe3
2 changed files with 162 additions and 3 deletions

View file

@ -98,6 +98,15 @@
#endif
#define DEFIO_PORT_H_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT)
#if defined(TARGET_IO_PORTI)
# define DEFIO_PORT_I_USED_MASK TARGET_IO_PORTI
# define DEFIO_PORT_I_USED_COUNT BITCOUNT(DEFIO_PORT_I_USED_MASK)
#else
# define DEFIO_PORT_I_USED_MASK 0
# define DEFIO_PORT_I_USED_COUNT 0
#endif
#define DEFIO_PORT_I_OFFSET (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
// DEFIO_GPIOID__<port> maps to port index
@ -109,6 +118,7 @@
#define DEFIO_GPIOID__F 5
#define DEFIO_GPIOID__G 6
#define DEFIO_GPIOID__H 7
#define DEFIO_GPIOID__I 8
// DEFIO_TAG__P<port><pin> will expand to TAG if defined for target, error is triggered otherwise
// DEFIO_TAG_E__P<port><pin> will expand to TAG if defined, to NONE otherwise (usefull for tables that are CPU-specific)
@ -1266,13 +1276,162 @@
# define DEFIO_TAG_E__PH15 DEFIO_TAG_E__NONE
# define DEFIO_REC__PH15 defio_error_PH15_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(0)
# define DEFIO_TAG__PI0 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 0)
# define DEFIO_TAG_E__PI0 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 0)
# define DEFIO_REC__PI0 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(0) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI0 defio_error_PI0_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI0 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI0 defio_error_PI0_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(1)
# define DEFIO_TAG__PI1 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 1)
# define DEFIO_TAG_E__PI1 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 1)
# define DEFIO_REC__PI1 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(1) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI1 defio_error_PI1_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI1 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI1 defio_error_PI1_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(2)
# define DEFIO_TAG__PI2 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 2)
# define DEFIO_TAG_E__PI2 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 2)
# define DEFIO_REC__PI2 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(2) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI2 defio_error_PI2_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI2 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI2 defio_error_PI2_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(3)
# define DEFIO_TAG__PI3 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 3)
# define DEFIO_TAG_E__PI3 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 3)
# define DEFIO_REC__PI3 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(3) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI3 defio_error_PI3_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI3 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI3 defio_error_PI3_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(4)
# define DEFIO_TAG__PI4 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 4)
# define DEFIO_TAG_E__PI4 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 4)
# define DEFIO_REC__PI4 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(4) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI4 defio_error_PI4_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI4 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI4 defio_error_PI4_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(5)
# define DEFIO_TAG__PI5 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 5)
# define DEFIO_TAG_E__PI5 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 5)
# define DEFIO_REC__PI5 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(5) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI5 defio_error_PI5_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI5 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI5 defio_error_PI5_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(6)
# define DEFIO_TAG__PI6 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 6)
# define DEFIO_TAG_E__PI6 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 6)
# define DEFIO_REC__PI6 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(6) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI6 defio_error_PI6_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI6 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI6 defio_error_PI6_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(7)
# define DEFIO_TAG__PI7 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 7)
# define DEFIO_TAG_E__PI7 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 7)
# define DEFIO_REC__PI7 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(7) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI7 defio_error_PI7_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI7 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI7 defio_error_PI7_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(8)
# define DEFIO_TAG__PI8 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 8)
# define DEFIO_TAG_E__PI8 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 8)
# define DEFIO_REC__PI8 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(8) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI8 defio_error_PI8_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI8 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI8 defio_error_PI8_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(9)
# define DEFIO_TAG__PI9 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 9)
# define DEFIO_TAG_E__PI9 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 9)
# define DEFIO_REC__PI9 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(9) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI9 defio_error_PI9_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI9 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI9 defio_error_PI9_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(10)
# define DEFIO_TAG__PI10 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 10)
# define DEFIO_TAG_E__PI10 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 10)
# define DEFIO_REC__PI10 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(10) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI10 defio_error_PI10_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI10 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI10 defio_error_PI10_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(11)
# define DEFIO_TAG__PI11 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 11)
# define DEFIO_TAG_E__PI11 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 11)
# define DEFIO_REC__PI11 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(11) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI11 defio_error_PI11_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI11 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI11 defio_error_PI11_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(12)
# define DEFIO_TAG__PI12 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 12)
# define DEFIO_TAG_E__PI12 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 12)
# define DEFIO_REC__PI12 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(12) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI12 defio_error_PI12_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI12 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI12 defio_error_PI12_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(13)
# define DEFIO_TAG__PI13 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 13)
# define DEFIO_TAG_E__PI13 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 13)
# define DEFIO_REC__PI13 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(13) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI13 defio_error_PI13_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI13 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI13 defio_error_PI13_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(14)
# define DEFIO_TAG__PI14 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 14)
# define DEFIO_TAG_E__PI14 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 14)
# define DEFIO_REC__PI14 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(14) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI14 defio_error_PI14_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI14 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI14 defio_error_PI14_is_not_supported_on_TARGET
#endif
#if DEFIO_PORT_I_USED_MASK & BIT(15)
# define DEFIO_TAG__PI15 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 15)
# define DEFIO_TAG_E__PI15 DEFIO_TAG_MAKE(DEFIO_GPIOID__I, 15)
# define DEFIO_REC__PI15 DEFIO_REC_INDEXED(BITCOUNT(DEFIO_PORT_I_USED_MASK & (BIT(15) - 1)) + DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#else
# define DEFIO_TAG__PI15 defio_error_PI15_is_not_supported_on_TARGET
# define DEFIO_TAG_E__PI15 DEFIO_TAG_E__NONE
# define DEFIO_REC__PI15 defio_error_PI15_is_not_supported_on_TARGET
#endif
// DEFIO_IO_USED_COUNT is number of io pins supported on target
#define DEFIO_IO_USED_COUNT (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT)
#define DEFIO_IO_USED_COUNT (DEFIO_PORT_A_USED_COUNT+DEFIO_PORT_B_USED_COUNT+DEFIO_PORT_C_USED_COUNT+DEFIO_PORT_D_USED_COUNT+DEFIO_PORT_E_USED_COUNT+DEFIO_PORT_F_USED_COUNT+DEFIO_PORT_G_USED_COUNT+DEFIO_PORT_H_USED_COUNT+DEFIO_PORT_I_USED_COUNT)
// DEFIO_PORT_USED_LIST - comma separated list of bitmask for all used ports.
// DEFIO_PORT_OFFSET_LIST - comma separated list of port offsets (count of pins before this port)
// unused ports on end of list are skipped
#if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_I_USED_COUNT > 0
# define DEFIO_PORT_USED_COUNT 9
# define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK,DEFIO_PORT_F_USED_MASK,DEFIO_PORT_G_USED_MASK,DEFIO_PORT_H_USED_MASK,DEFIO_PORT_I_USED_MASK
# define DEFIO_PORT_OFFSET_LIST DEFIO_PORT_A_OFFSET,DEFIO_PORT_B_OFFSET,DEFIO_PORT_C_OFFSET,DEFIO_PORT_D_OFFSET,DEFIO_PORT_E_OFFSET,DEFIO_PORT_F_OFFSET,DEFIO_PORT_G_OFFSET,DEFIO_PORT_H_OFFSET,DEFIO_PORT_I_OFFSET
#endif
#if !defined DEFIO_PORT_USED_LIST && DEFIO_PORT_H_USED_COUNT > 0
# define DEFIO_PORT_USED_COUNT 8
# define DEFIO_PORT_USED_LIST DEFIO_PORT_A_USED_MASK,DEFIO_PORT_B_USED_MASK,DEFIO_PORT_C_USED_MASK,DEFIO_PORT_D_USED_MASK,DEFIO_PORT_E_USED_MASK,DEFIO_PORT_F_USED_MASK,DEFIO_PORT_G_USED_MASK,DEFIO_PORT_H_USED_MASK

View file

@ -6,10 +6,10 @@ use strict;
# io_def_generated.h
my @ports = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H');
my @ports = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I');
my @pins = 0 .. 15;
my @timers = (1,2,3,4,6,7,8,15,16,17);
my $drivers_dir = "../main/drivers";
my $drivers_dir = "src/main/drivers";
# change list separator to newline - we use @{} interpolation to merge multiline strings
$" = "\n";