Skip to content

Commit 3779228

Browse files
authored
Merge pull request #27 from AlexLanzano/optimize-gpio-pincfg
[gpio, stm32, boards] Pack GPIO pin config into uint32_t for reduced data size
2 parents 40d3bed + 9df6970 commit 3779228

15 files changed

Lines changed: 377 additions & 459 deletions

File tree

boards/stm32c031_nucleo/board.c

Lines changed: 30 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -54,60 +54,36 @@ whal_Gpio g_whalGpio = {
5454

5555
.cfg = &(whal_Stm32c0Gpio_Cfg) {
5656
.pinCfg = (whal_Stm32c0Gpio_PinCfg[PIN_COUNT]) {
57-
[LED_PIN] = { /* LD4 Green LED on PA5 */
58-
.port = WHAL_STM32C0_GPIO_PORT_A,
59-
.pin = 5,
60-
.mode = WHAL_STM32C0_GPIO_MODE_OUT,
61-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
62-
.speed = WHAL_STM32C0_GPIO_SPEED_LOW,
63-
.pull = WHAL_STM32C0_GPIO_PULL_NONE,
64-
.altFn = 0,
65-
},
66-
[UART_TX_PIN] = { /* USART1 TX on PB6, AF1 */
67-
.port = WHAL_STM32C0_GPIO_PORT_B,
68-
.pin = 6,
69-
.mode = WHAL_STM32C0_GPIO_MODE_ALTFN,
70-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
71-
.speed = WHAL_STM32C0_GPIO_SPEED_FAST,
72-
.pull = WHAL_STM32C0_GPIO_PULL_UP,
73-
.altFn = 0,
74-
},
75-
[UART_RX_PIN] = { /* USART1 RX on PB7, AF1 */
76-
.port = WHAL_STM32C0_GPIO_PORT_B,
77-
.pin = 7,
78-
.mode = WHAL_STM32C0_GPIO_MODE_ALTFN,
79-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
80-
.speed = WHAL_STM32C0_GPIO_SPEED_FAST,
81-
.pull = WHAL_STM32C0_GPIO_PULL_UP,
82-
.altFn = 0,
83-
},
84-
[SPI_SCK_PIN] = { /* SPI1 SCK on PA1, AF0 */
85-
.port = WHAL_STM32C0_GPIO_PORT_A,
86-
.pin = 1,
87-
.mode = WHAL_STM32C0_GPIO_MODE_ALTFN,
88-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
89-
.speed = WHAL_STM32C0_GPIO_SPEED_FAST,
90-
.pull = WHAL_STM32C0_GPIO_PULL_NONE,
91-
.altFn = 0,
92-
},
93-
[SPI_MISO_PIN] = { /* SPI1 MISO on PA6, AF0 */
94-
.port = WHAL_STM32C0_GPIO_PORT_A,
95-
.pin = 6,
96-
.mode = WHAL_STM32C0_GPIO_MODE_ALTFN,
97-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
98-
.speed = WHAL_STM32C0_GPIO_SPEED_FAST,
99-
.pull = WHAL_STM32C0_GPIO_PULL_NONE,
100-
.altFn = 0,
101-
},
102-
[SPI_MOSI_PIN] = { /* SPI1 MOSI on PA7, AF0 */
103-
.port = WHAL_STM32C0_GPIO_PORT_A,
104-
.pin = 7,
105-
.mode = WHAL_STM32C0_GPIO_MODE_ALTFN,
106-
.outType = WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL,
107-
.speed = WHAL_STM32C0_GPIO_SPEED_FAST,
108-
.pull = WHAL_STM32C0_GPIO_PULL_NONE,
109-
.altFn = 0,
110-
},
57+
/* LD4 Green LED on PA5 */
58+
[LED_PIN] = WHAL_STM32C0_GPIO_PIN(
59+
WHAL_STM32C0_GPIO_PORT_A, 5, WHAL_STM32C0_GPIO_MODE_OUT,
60+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_LOW,
61+
WHAL_STM32C0_GPIO_PULL_NONE, 0),
62+
/* USART1 TX on PB6, AF0 */
63+
[UART_TX_PIN] = WHAL_STM32C0_GPIO_PIN(
64+
WHAL_STM32C0_GPIO_PORT_B, 6, WHAL_STM32C0_GPIO_MODE_ALTFN,
65+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_FAST,
66+
WHAL_STM32C0_GPIO_PULL_UP, 0),
67+
/* USART1 RX on PB7, AF0 */
68+
[UART_RX_PIN] = WHAL_STM32C0_GPIO_PIN(
69+
WHAL_STM32C0_GPIO_PORT_B, 7, WHAL_STM32C0_GPIO_MODE_ALTFN,
70+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_FAST,
71+
WHAL_STM32C0_GPIO_PULL_UP, 0),
72+
/* SPI1 SCK on PA1, AF0 */
73+
[SPI_SCK_PIN] = WHAL_STM32C0_GPIO_PIN(
74+
WHAL_STM32C0_GPIO_PORT_A, 1, WHAL_STM32C0_GPIO_MODE_ALTFN,
75+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_FAST,
76+
WHAL_STM32C0_GPIO_PULL_NONE, 0),
77+
/* SPI1 MISO on PA6, AF0 */
78+
[SPI_MISO_PIN] = WHAL_STM32C0_GPIO_PIN(
79+
WHAL_STM32C0_GPIO_PORT_A, 6, WHAL_STM32C0_GPIO_MODE_ALTFN,
80+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_FAST,
81+
WHAL_STM32C0_GPIO_PULL_NONE, 0),
82+
/* SPI1 MOSI on PA7, AF0 */
83+
[SPI_MOSI_PIN] = WHAL_STM32C0_GPIO_PIN(
84+
WHAL_STM32C0_GPIO_PORT_A, 7, WHAL_STM32C0_GPIO_MODE_ALTFN,
85+
WHAL_STM32C0_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32C0_GPIO_SPEED_FAST,
86+
WHAL_STM32C0_GPIO_PULL_NONE, 0),
11187
},
11288
.pinCount = PIN_COUNT,
11389
},

boards/stm32f411_blackpill/board.c

Lines changed: 30 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -70,60 +70,36 @@ whal_Gpio g_whalGpio = {
7070

7171
.cfg = &(whal_Stm32f4Gpio_Cfg) {
7272
.pinCfg = (whal_Stm32f4Gpio_PinCfg[PIN_COUNT]) {
73-
[LED_PIN] = { /* LED on PC13 (active low) */
74-
.port = WHAL_STM32F4_GPIO_PORT_C,
75-
.pin = 13,
76-
.mode = WHAL_STM32F4_GPIO_MODE_OUT,
77-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
78-
.speed = WHAL_STM32F4_GPIO_SPEED_LOW,
79-
.pull = WHAL_STM32F4_GPIO_PULL_NONE,
80-
.altFn = 0,
81-
},
82-
[UART_TX_PIN] = { /* USART2 TX on PA2 (AF7) */
83-
.port = WHAL_STM32F4_GPIO_PORT_A,
84-
.pin = 2,
85-
.mode = WHAL_STM32F4_GPIO_MODE_ALTFN,
86-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
87-
.speed = WHAL_STM32F4_GPIO_SPEED_FAST,
88-
.pull = WHAL_STM32F4_GPIO_PULL_UP,
89-
.altFn = 7,
90-
},
91-
[UART_RX_PIN] = { /* USART2 RX on PA3 (AF7) */
92-
.port = WHAL_STM32F4_GPIO_PORT_A,
93-
.pin = 3,
94-
.mode = WHAL_STM32F4_GPIO_MODE_ALTFN,
95-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
96-
.speed = WHAL_STM32F4_GPIO_SPEED_FAST,
97-
.pull = WHAL_STM32F4_GPIO_PULL_UP,
98-
.altFn = 7,
99-
},
100-
[SPI_SCK_PIN] = { /* SPI1 SCK on PA5 (AF5) */
101-
.port = WHAL_STM32F4_GPIO_PORT_A,
102-
.pin = 5,
103-
.mode = WHAL_STM32F4_GPIO_MODE_ALTFN,
104-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
105-
.speed = WHAL_STM32F4_GPIO_SPEED_FAST,
106-
.pull = WHAL_STM32F4_GPIO_PULL_NONE,
107-
.altFn = 5,
108-
},
109-
[SPI_MISO_PIN] = { /* SPI1 MISO on PA6 (AF5) */
110-
.port = WHAL_STM32F4_GPIO_PORT_A,
111-
.pin = 6,
112-
.mode = WHAL_STM32F4_GPIO_MODE_ALTFN,
113-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
114-
.speed = WHAL_STM32F4_GPIO_SPEED_FAST,
115-
.pull = WHAL_STM32F4_GPIO_PULL_NONE,
116-
.altFn = 5,
117-
},
118-
[SPI_MOSI_PIN] = { /* SPI1 MOSI on PA7 (AF5) */
119-
.port = WHAL_STM32F4_GPIO_PORT_A,
120-
.pin = 7,
121-
.mode = WHAL_STM32F4_GPIO_MODE_ALTFN,
122-
.outType = WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL,
123-
.speed = WHAL_STM32F4_GPIO_SPEED_FAST,
124-
.pull = WHAL_STM32F4_GPIO_PULL_NONE,
125-
.altFn = 5,
126-
},
73+
/* LED on PC13 (active low) */
74+
[LED_PIN] = WHAL_STM32F4_GPIO_PIN(
75+
WHAL_STM32F4_GPIO_PORT_C, 13, WHAL_STM32F4_GPIO_MODE_OUT,
76+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_LOW,
77+
WHAL_STM32F4_GPIO_PULL_NONE, 0),
78+
/* USART2 TX on PA2 (AF7) */
79+
[UART_TX_PIN] = WHAL_STM32F4_GPIO_PIN(
80+
WHAL_STM32F4_GPIO_PORT_A, 2, WHAL_STM32F4_GPIO_MODE_ALTFN,
81+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_FAST,
82+
WHAL_STM32F4_GPIO_PULL_UP, 7),
83+
/* USART2 RX on PA3 (AF7) */
84+
[UART_RX_PIN] = WHAL_STM32F4_GPIO_PIN(
85+
WHAL_STM32F4_GPIO_PORT_A, 3, WHAL_STM32F4_GPIO_MODE_ALTFN,
86+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_FAST,
87+
WHAL_STM32F4_GPIO_PULL_UP, 7),
88+
/* SPI1 SCK on PA5 (AF5) */
89+
[SPI_SCK_PIN] = WHAL_STM32F4_GPIO_PIN(
90+
WHAL_STM32F4_GPIO_PORT_A, 5, WHAL_STM32F4_GPIO_MODE_ALTFN,
91+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_FAST,
92+
WHAL_STM32F4_GPIO_PULL_NONE, 5),
93+
/* SPI1 MISO on PA6 (AF5) */
94+
[SPI_MISO_PIN] = WHAL_STM32F4_GPIO_PIN(
95+
WHAL_STM32F4_GPIO_PORT_A, 6, WHAL_STM32F4_GPIO_MODE_ALTFN,
96+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_FAST,
97+
WHAL_STM32F4_GPIO_PULL_NONE, 5),
98+
/* SPI1 MOSI on PA7 (AF5) */
99+
[SPI_MOSI_PIN] = WHAL_STM32F4_GPIO_PIN(
100+
WHAL_STM32F4_GPIO_PORT_A, 7, WHAL_STM32F4_GPIO_MODE_ALTFN,
101+
WHAL_STM32F4_GPIO_OUTTYPE_PUSHPULL, WHAL_STM32F4_GPIO_SPEED_FAST,
102+
WHAL_STM32F4_GPIO_PULL_NONE, 5),
127103
},
128104
.pinCount = PIN_COUNT,
129105
},

0 commit comments

Comments
 (0)