Skip to content

Commit c07110f

Browse files
committed
Refactor lib-gd32: consolidate timers and GPIO
- Replace separate timer5.cpp, timer6.cpp, systick.cpp, delayus.cpp, and uptime.cpp with unified gd32_timers.cpp and gd32_timers.h - Extract GPIO macros and port/pin helpers into new gd32_gpio_macros.h - Add gd32_debug.h with per-subsystem debug macros (TIMERS, PWM, USB, TRNG) - Update GD32F407 clock frequencies to 168 MHz - Remove gd32_millis.h; millis() now lives in gd32_timers.h - Modernize code: anonymous namespaces, constexpr, [[nodiscard]], improved #endif comments - Rework softuart0 RX path with dedicated timer IRQ handler - Misc style/formatting cleanup across headers and source files
1 parent 660d0b1 commit c07110f

57 files changed

Lines changed: 1359 additions & 1228 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib-gd32/device/enet/f/enet_gpio_config.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525

2626
#if defined(DEBUG_ENET)
2727
#undef NDEBUG
28-
#endif
28+
#endif // DEBUG_ENET
2929

3030
#include "gd32.h" // IWYU pragma: keep
3131
#include "firmware/debug/debug_debug.h"
3232

3333
// Needed for older GD32F firmware
3434
#if !defined(GPIO_OSPEED_MAX)
3535
#define GPIO_OSPEED_MAX GPIO_OSPEED_200MHZ
36-
#endif
36+
#endif // GPIO_OSPEED_MAX
3737

3838
void EnetGpioConfig() {
3939
DEBUG_ENTRY();
@@ -53,7 +53,7 @@ void EnetGpioConfig() {
5353
rcu_ckout0_config(RCU_CKOUT0SRC_CKPLL2);
5454
#else
5555
rcu_ckout0_config(RCU_CKOUT0SRC_CKPLL2, RCU_CKOUT0_DIV1);
56-
#endif
56+
#endif // GD32F10X_CL
5757
gpio_ethernet_phy_select(GPIO_ENET_PHY_RMII);
5858

5959
/* PA1: ETH_RMII_REF_CLK */
@@ -137,6 +137,6 @@ void EnetGpioConfig() {
137137
gpio_af_set(GPIOC, GPIO_AF_11, GPIO_PIN_1);
138138
gpio_af_set(GPIOC, GPIO_AF_11, GPIO_PIN_4);
139139
gpio_af_set(GPIOC, GPIO_AF_11, GPIO_PIN_5);
140-
#endif
140+
#endif // defined(GD32F10X) || defined(GD32F20X)
141141
DEBUG_EXIT();
142142
}

lib-gd32/device/enet/h/enet_gpio_config.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#if defined(DEBUG_ENET)
2727
#undef NDEBUG
28-
#endif
28+
#endif // DEBUG_ENET
2929

3030
#include "gd32.h" // IWYU pragma: keep
3131
#include "firmware/debug/debug_debug.h"
@@ -55,27 +55,27 @@ void EnetGpioConfig() {
5555
#ifdef PHY_CLOCK_MCO
5656
/* output HXTAL clock (25MHz) on CKOUT0 pin(PA8) to clock the PHY */
5757
rcu_ckout0_config(RCU_CKOUT0SRC_HXTAL, RCU_CKOUT0_DIV1);
58-
#endif /* PHY_CLOCK_MCO */
58+
#endif // PHY_CLOCK_MCO
5959

6060
#ifdef USE_ENET0
6161
syscfg_enet_phy_interface_config(ENET0, SYSCFG_ENET_PHY_MII);
62-
#endif /* USE_ENET0 */
62+
#endif // USE_ENET0
6363
#ifdef USE_ENET1
6464
syscfg_enet_phy_interface_config(ENET1, SYSCFG_ENET_PHY_MII);
65-
#endif /* USE_ENET1 */
65+
#endif // USE_ENET1
6666

6767
#elif defined RMII_MODE
6868
/* choose DIV12 to get 50MHz from 600MHz on CKOUT0 pin (PA8) to clock the PHY */
6969
rcu_ckout0_config(RCU_CKOUT0SRC_PLL0P, RCU_CKOUT0_DIV12);
7070

7171
#ifdef USE_ENET0
7272
syscfg_enet_phy_interface_config(ENET0, SYSCFG_ENET_PHY_RMII);
73-
#endif /* USE_ENET0 */
73+
#endif // USE_ENET0
7474
#ifdef USE_ENET1
7575
syscfg_enet_phy_interface_config(ENET1, SYSCFG_ENET_PHY_RMII);
76-
#endif /* USE_ENET1 */
76+
#endif // USE_ENET1
7777

78-
#endif /* MII_MODE */
78+
#endif // MII_MODE
7979

8080
#ifdef USE_ENET0
8181
#ifdef MII_MODE
@@ -223,8 +223,8 @@ void EnetGpioConfig() {
223223
gpio_af_set(GPIOC, GPIO_AF_11, GPIO_PIN_4);
224224
gpio_af_set(GPIOC, GPIO_AF_11, GPIO_PIN_5);
225225

226-
#endif /* MII_MODE */
227-
#endif /* USE_ENET0 */
226+
#endif // MII_MODE
227+
#endif // USE_ENET0
228228

229229
#ifdef USE_ENET1
230230
#ifdef MII_MODE
@@ -368,7 +368,7 @@ void EnetGpioConfig() {
368368
gpio_af_set(GPIOG, GPIO_AF_6, GPIO_PIN_13);
369369
gpio_af_set(GPIOG, GPIO_AF_6, GPIO_PIN_14);
370370

371-
#endif /* MII_MODE */
372-
#endif /* USE_ENET1 */
371+
#endif // MII_MODE
372+
#endif // USE_ENET1
373373
DEBUG_EXIT();
374374
}

lib-gd32/device/enet/ptp/gd32_ptp.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static FlagStatus EnetPtpflagstatusGet(uint32_t flag) {
6161

6262
return bitstatus;
6363
}
64-
#endif
64+
#endif // GD32H7XX
6565

6666
static void PtpStart(uint32_t init_sec, uint32_t init_subsec, [[maybe_unused]] uint32_t carry_cfg, uint32_t accuracy_cfg) {
6767
DEBUG_ENTRY();
@@ -72,7 +72,7 @@ static void PtpStart(uint32_t init_sec, uint32_t init_subsec, [[maybe_unused]] u
7272
enet_ptp_feature_enable(ENET_ALL_RX_TIMESTAMP | ENET_RXTX_TIMESTAMP);
7373
#else
7474
enet_ptp_feature_enable(ENET_RXTX_TIMESTAMP);
75-
#endif
75+
#endif // defined(GD32F4XX) || defined(GD32H7XX)
7676
enet_ptp_subsecond_increment_config(accuracy_cfg);
7777

7878
enet_ptp_timestamp_addend_config(carry_cfg);
@@ -109,7 +109,7 @@ void Gd32PtpStart() {
109109
auto* tm = localtime(&tv.tv_sec);
110110

111111
DEBUG_PRINTF("%.2d-%.2d-%.4d %.2d:%.2d:%.2d.%.6d", tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900, tm->tm_hour, tm->tm_min, tm->tm_sec, static_cast<int>(tv.tv_usec));
112-
#endif
112+
#endif // NDEBUG
113113
DEBUG_EXIT();
114114
}
115115

@@ -123,7 +123,7 @@ void Gd32PtpGetTime(gd32::ptp::ptptime* ptp_time) {
123123
ptp_time->tv_nsec = systime.nanosecond;
124124
#else
125125
ptp_time->tv_nsec = gd32::PtpSubsecond2Nanosecond(systime.subsecond);
126-
#endif
126+
#endif // GD32F4XX
127127
}
128128

129129
void Gd32PtpSetTime(const gd32::ptp::ptptime* ptp_time) {
@@ -157,7 +157,7 @@ void Gd32PtpUpdateTime(const gd32::ptp::time_t* time) {
157157
const auto kAddend = ENET_PTP_TSADDEND(ENETx);
158158
#else
159159
const auto kAddend = ENET_PTP_TSADDEND;
160-
#endif
160+
#endif // GD32H7XX
161161

162162
enet_ptp_timestamp_update_config(sign, second, kSubSecond);
163163
enet_ptp_timestamp_function_config(ENET_PTP_SYSTIME_UPDATE);

lib-gd32/include/board/16x4u-pixel.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828

2929
#if !defined(BOARD_16X4U_PIXEL)
3030
# error This file should not be included
31-
#endif
31+
#endif // BOARD_16X4U_PIXEL
3232

3333
#if defined (MCU_GD32F450_MCU_H_)
3434
# error This file should be included later
35-
#endif
35+
#endif // defined (MCU_GD32F450_MCU_H_)
3636

3737
/**
3838
* LEDs
@@ -128,7 +128,7 @@ inline constexpr uint32_t kTcnet = 0;
128128
static constexpr uint32_t kPortARx = 0;
129129
static constexpr uint32_t kPortATx = 0;
130130
} // namespace panelled
131-
#endif
131+
#endif // __cplusplus
132132

133133
/**
134134
* SPI flash
@@ -199,4 +199,4 @@ static constexpr uint32_t kPortATx = 0;
199199

200200
#include "gpio_header.h"
201201

202-
#endif /* BOARD_16X4U_PIXEL_H_ */
202+
#endif // BOARD_16X4U_PIXEL_H_

lib-gd32/include/board/bw_opidmx4.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@
2828

2929
#if !defined(BOARD_BW_OPIDMX4)
3030
# error This file should not be included
31-
#endif
31+
#endif // BOARD_BW_OPIDMX4
3232

3333
#if defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3434
# error This file should be included later
35-
#endif
35+
#endif // defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3636

3737
#if !(defined(CONSOLE_I2C) || defined(CONFIG_CLIB_USE_NULL) || defined(CONFIG_USE_SOFTUART0))
3838
# error USART0 is used for console
39-
#endif
39+
#endif // !(defined(CONSOLE_I2C) || defined(CONFIG_CLIB_USE_NULL) || defined(CONFIG_USE_SOFTUART0))
4040

4141
#include <stdint.h>
4242

@@ -133,7 +133,7 @@ inline constexpr uint32_t kTcnet = 0;
133133
static constexpr uint32_t kPortARx = 0;
134134
static constexpr uint32_t kPortATx = 0;
135135
} // namespace panelled
136-
#endif
136+
#endif // __cplusplus
137137

138138
/**
139139
* SPI flash
@@ -165,7 +165,7 @@ static constexpr uint32_t kPortATx = 0;
165165
# define LINK_CHECK_EXTI_PIN_SOURCE EXTI_SOURCE_PIN0
166166
# define LINK_CHECK_EXTI_SOURCE_CONFIG syscfg_exti_line_config
167167
# define LINK_CHECK_GPIO_CONFIG gpio_mode_set(LINK_CHECK_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, LINK_CHECK_GPIO_PIN);
168-
#endif
168+
#endif // !defined (GD32F4XX)
169169

170170
/**
171171
* MCU and BOARD name
@@ -179,7 +179,7 @@ static constexpr uint32_t kPortATx = 0;
179179
# define GD32_MCU_NAME "GD32F407RE"
180180
#else
181181
# error MCU is not supported
182-
#endif
182+
#endif // defined (GD32F20X_CL)
183183

184184
#define GD32_BOARD_NAME "BW_OPIDMX4"
185185

@@ -215,7 +215,7 @@ static constexpr uint32_t kPortATx = 0;
215215
# define DISPLAYTIMEOUT_EXTI_PIN_SOURCE EXTI_SOURCE_PIN14
216216
# define DISPLAYTIMEOUT_EXTI_SOURCE_CONFIG syscfg_exti_line_config
217217
# define DISPLAYTIMEOUT_GPIO_CONFIG gpio_mode_set(DISPLAYTIMEOUT_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, DISPLAYTIMEOUT_GPIO_PIN);
218-
#endif
218+
#endif // !defined (GD32F4XX)
219219

220220
/**
221221
* SPI LCD
@@ -226,8 +226,8 @@ static constexpr uint32_t kPortATx = 0;
226226
#define SPI_LCD_BL_GPIO GPIO_EXT_22
227227
#if defined(SPI_LCD_HAVE_CS_GPIO)
228228
# define SPI_LCD_CS_GPIO GPIO_EXT_24
229-
#endif
229+
#endif // SPI_LCD_HAVE_CS_GPIO
230230

231231
#include "gpio_header.h"
232232

233-
#endif /* BOARD_BW_OPIDMX4_H_ */
233+
#endif // BOARD_BW_OPIDMX4_H_

lib-gd32/include/board/dmx3.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828

2929
#if !defined(BOARD_DMX3)
3030
# error This file should not be included
31-
#endif
31+
#endif // BOARD_DMX3
3232

3333
#if defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3434
# error This file should be included later
35-
#endif
35+
#endif // defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3636

3737
#include <stdint.h>
3838

@@ -130,7 +130,7 @@ inline constexpr uint32_t kPortARx = (1U << 8);
130130
#define CONFIG_PANELLED_RDM_PORT
131131
inline constexpr uint32_t kPortARdm = (1U << 16);
132132
} // namespace panelled
133-
#endif
133+
#endif // __cplusplus
134134

135135
#define PANELLED_595_COUNT 2
136136
#define PANELLED_595_CS_GPIOx GPIOA
@@ -167,7 +167,7 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
167167
# define LINK_CHECK_EXTI_PIN_SOURCE EXTI_SOURCE_PIN0
168168
# define LINK_CHECK_EXTI_SOURCE_CONFIG syscfg_exti_line_config
169169
# define LINK_CHECK_GPIO_CONFIG gpio_mode_set(LINK_CHECK_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, LINK_CHECK_GPIO_PIN);
170-
#endif
170+
#endif // !defined (GD32F4XX)
171171

172172
/**
173173
* MCU and BOARD name
@@ -181,7 +181,7 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
181181
# define GD32_MCU_NAME "GD32F407RE"
182182
#else
183183
# error MCU is not supported
184-
#endif
184+
#endif // defined (GD32F20X_CL)
185185

186186
#define GD32_BOARD_NAME "DMX3"
187187

@@ -217,7 +217,7 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
217217
# define DISPLAYTIMEOUT_EXTI_PIN_SOURCE EXTI_SOURCE_PIN14
218218
# define DISPLAYTIMEOUT_EXTI_SOURCE_CONFIG syscfg_exti_line_config
219219
# define DISPLAYTIMEOUT_GPIO_CONFIG gpio_mode_set(DISPLAYTIMEOUT_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, DISPLAYTIMEOUT_GPIO_PIN);
220-
#endif
220+
#endif // !defined (GD32F4XX)
221221

222222
/**
223223
* SPI LCD
@@ -228,8 +228,8 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
228228
#define SPI_LCD_BL_GPIO GPIO_EXT_22
229229
#if defined(SPI_LCD_HAVE_CS_GPIO)
230230
# define SPI_LCD_CS_GPIO GPIO_EXT_24
231-
#endif
231+
#endif // SPI_LCD_HAVE_CS_GPIO
232232

233233
#include "gpio_header.h"
234234

235-
#endif /* BOARD_DMX3_H_ */
235+
#endif // BOARD_DMX3_H_

lib-gd32/include/board/dmx4.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@
2828

2929
#if !defined(BOARD_DMX4)
3030
# error This file should not be included
31-
#endif
31+
#endif // BOARD_DMX4
3232

3333
#if defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3434
# error This file should be included later
35-
#endif
35+
#endif // defined (MCU_GD32F20X_MCU_H_) || defined (MCU_GD32F407_MCU_H_)
3636

3737
#if !(defined(CONSOLE_I2C) || defined(CONFIG_CLIB_USE_NULL) || defined(CONFIG_USE_SOFTUART0))
3838
# error USART0 is used for console
39-
#endif
39+
#endif // !(defined(CONSOLE_I2C) || defined(CONFIG_CLIB_USE_NULL) || defined(CONFIG_USE_SOFTUART0))
4040

4141
#include <stdint.h>
4242

@@ -134,7 +134,7 @@ inline constexpr uint32_t kPortARx = (1U << 8);
134134
#define CONFIG_PANELLED_RDM_PORT
135135
inline constexpr uint32_t kPortARdm = (1U << 16);
136136
} // namespace panelled
137-
#endif
137+
#endif // __cplusplus
138138

139139
#define PANELLED_595_COUNT 2
140140
#define PANELLED_595_CS_GPIOx GPIOA
@@ -171,7 +171,7 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
171171
# define LINK_CHECK_EXTI_PIN_SOURCE EXTI_SOURCE_PIN0
172172
# define LINK_CHECK_EXTI_SOURCE_CONFIG syscfg_exti_line_config
173173
# define LINK_CHECK_GPIO_CONFIG gpio_mode_set(LINK_CHECK_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, LINK_CHECK_GPIO_PIN);
174-
#endif
174+
#endif // !defined (GD32F4XX)
175175

176176
/**
177177
* MCU and BOARD name
@@ -185,7 +185,7 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
185185
# define GD32_MCU_NAME "GD32F407RE"
186186
#else
187187
# error MCU is not supported
188-
#endif
188+
#endif // defined (GD32F20X_CL)
189189

190190
#define GD32_BOARD_NAME "DMX4"
191191

@@ -211,8 +211,8 @@ inline constexpr uint32_t kPortARdm = (1U << 16);
211211
#define SPI_LCD_BL_GPIO GPIO_EXT_22
212212
#if defined(SPI_LCD_HAVE_CS_GPIO)
213213
# define SPI_LCD_CS_GPIO GPIO_EXT_24
214-
#endif
214+
#endif // SPI_LCD_HAVE_CS_GPIO
215215

216216
#include "gpio_header.h"
217217

218-
#endif /* BOARD_DMX4_H_ */
218+
#endif // BOARD_DMX4_H_

0 commit comments

Comments
 (0)