Skip to content

Commit 2caa11a

Browse files
committed
[bsp][n32] n32hxxx: extend H47x_48x/H49x/H7xx driver support
- libraries/N32_Drivers: add ADC/DAC/I2C/SPI config headers for the h47x_48x, h49x and h7xx series, and extend the shared drivers (adc, dac, eth, gpio, hard_i2c, nand, qspi, sdram, spi, usart, wdt). - n32h487zgl7-evb / n32h497zgl7-evb: add board ports (femc_timing, phy_reset, usb_config) and update Kconfig, SConscript, rtconfig and the IAR/Keil project files. - n32h760zil7-stb: update Kconfig and rtconfig. - CI: register the three n32hxxx boards.
1 parent 2bb31e5 commit 2caa11a

69 files changed

Lines changed: 7560 additions & 2755 deletions

Some content is hidden

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

.github/workflows/manual_trigger_scons_except_STM32_all.yml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -190,18 +190,21 @@ jobs:
190190
#- {RTT_BSP_NAME: "mm32f327x", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "mm32f327x"} #编译问题
191191
- {RTT_BSP_NAME: "mm32l07x", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "mm32l07x"}
192192
- {RTT_BSP_NAME: "mm32l3xx", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "mm32l3xx"}
193-
- {RTT_BSP_NAME: "n32_n32g43xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g43xcl-stb"}
194-
- {RTT_BSP_NAME: "n32_n32g457qel-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g457qel-stb"}
195-
- {RTT_BSP_NAME: "n32_n32g45xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g45xcl-stb"}
196-
- {RTT_BSP_NAME: "n32_n32g45xml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g45xml-stb"}
197-
- {RTT_BSP_NAME: "n32_n32g45xrl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g45xrl-stb"}
198-
- {RTT_BSP_NAME: "n32_n32g45xvl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g45xvl-stb"}
199-
- {RTT_BSP_NAME: "n32_n32g4frml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32g4frml-stb"}
200-
- {RTT_BSP_NAME: "n32_n32l40xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32l40xcl-stb"}
201-
- {RTT_BSP_NAME: "n32_n32l436-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32l436-evb"}
202-
- {RTT_BSP_NAME: "n32_n32l43xml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32l43xml-stb"}
203-
- {RTT_BSP_NAME: "n32_n32l43xrl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32l43xrl-stb"}
204-
- {RTT_BSP_NAME: "n32_n32wb45xl-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32wb45xl-evb"}
193+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g43xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g43xcl-stb"}
194+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g457qel-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g457qel-stb"}
195+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g45xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g45xcl-stb"}
196+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g45xml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g45xml-stb"}
197+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g45xrl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g45xrl-stb"}
198+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g45xvl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g45xvl-stb"}
199+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32g4frml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32g4frml-stb"}
200+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32l40xcl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32l40xcl-stb"}
201+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32l436-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32l436-evb"}
202+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32l43xml-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32l43xml-stb"}
203+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32l43xrl-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32l43xrl-stb"}
204+
- {RTT_BSP_NAME: "n32_n32gxx_lxx_n32wb45xl-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32gxx_lxx/n32wb45xl-evb"}
205+
- {RTT_BSP_NAME: "n32_n32hxxx_n32h487zgl7-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32hxxx/n32h487zgl7-evb"}
206+
- {RTT_BSP_NAME: "n32_n32hxxx_n32h497zgl7-evb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32hxxx/n32h497zgl7-evb"}
207+
- {RTT_BSP_NAME: "n32_n32hxxx_n32h760zil7-stb", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32/n32hxxx/n32h760zil7-stb"}
205208
- {RTT_BSP_NAME: "n32g452xx_n32g452xx-mini-system", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "n32g452xx/n32g452xx-mini-system"}
206209
#- {RTT_BSP_NAME: "nios_ii", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "nios_ii"} #编译问题
207210
- {RTT_BSP_NAME: "nrf5x_nrf51822", RTT_TOOL_CHAIN: "sourcery-arm", RTT_BSP: "nrf5x/nrf51822"}

bsp/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,8 @@ This document is based on the RT-Thread mainline repository and categorizes the
333333
| [n32l43xrl-stb](n32/n32gxx_lxx/n32l43xrl-stb) ||||||||||| - | - | - | - | - | - | - | - | - |
334334
| [n32wb45xl-evb](n32/n32gxx_lxx/n32wb45xl-evb) ||||||||||| - | - | - | - | - | - | - | - | - |
335335
| [n32h760zil7-stb](n32/n32hxxx/n32h760zil7-stb) ||||||||||||||||||||
336-
| [n32h497zgl7-evb](n32/n32hxxx/n32h497zgl7-evb) ||| - || - | - | - || - | - | - | - | - | - | - || - | - | - |
337-
| [n32h487zgl7-evb](n32/n32hxxx/n32h487zgl7-evb) ||| - || - | - | - || - | - | - | - | - | - | - || - | - | - |
336+
| [n32h497zgl7-evb](n32/n32hxxx/n32h497zgl7-evb) ||| || | - | || | | - | - | - | | || | - | |
337+
| [n32h487zgl7-evb](n32/n32hxxx/n32h487zgl7-evb) ||| || | - | || | | - | - | - | | || - | - | |
338338

339339

340340
#### 🟡 NRF5x
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* Copyright (c) 2006-2026, RT-Thread Development Team
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Change Logs:
7+
* Date Author Notes
8+
* 2026-08-28 FUNMSAN first version
9+
*/
10+
11+
#ifndef __ADC_CONFIG_H__
12+
#define __ADC_CONFIG_H__
13+
14+
#include <rtthread.h>
15+
16+
#ifdef __cplusplus
17+
extern "C" {
18+
#endif
19+
20+
#define N32H47X_48X_ADC_CONFIG(ADC_INSTANCE, ADC_PERIPH) \
21+
{ \
22+
.ADCx = ADC_INSTANCE, \
23+
.AHB_periph = ADC_PERIPH, \
24+
.EnablePeriphClk = RCC_EnableAHB1PeriphClk, \
25+
.ADC_ClkMode = ADC_CTRL3_CKMOD_AHB, \
26+
.RCC_ADCPrescaler = RCC_ADCHCLK_DIV16, \
27+
.ADC1M_ClkSource = RCC_ADC1MCLK_SRC_HSI, \
28+
.ADC1M_ClkPrescaler = RCC_ADC1MCLK_DIV8, \
29+
.Rank = 1U, \
30+
.ADC_SampleTime = ADC_SAMP_TIME_CYCLES_239_5, \
31+
.Init.WorkMode = ADC_WORKMODE_INDEPENDENT, \
32+
.Init.MultiChEn = DISABLE, \
33+
.Init.ContinueConvEn = DISABLE, \
34+
.Init.ExtTrigSelect = ADC_EXT_TRIG_REG_CONV_SOFTWARE, \
35+
.Init.DatAlign = ADC_DAT_ALIGN_R, \
36+
.Init.ChsNumber = 1U, \
37+
.Init.Resolution = ADC_DATA_RES_12BIT, \
38+
}
39+
40+
#ifdef BSP_USING_ADC1
41+
#ifndef ADC1_CONFIG
42+
#define ADC1_CONFIG N32H47X_48X_ADC_CONFIG(ADC1, RCC_AHB_PERIPHEN_ADC1)
43+
#endif /* ADC1_CONFIG */
44+
#endif /* BSP_USING_ADC1 */
45+
46+
#ifdef BSP_USING_ADC2
47+
#ifndef ADC2_CONFIG
48+
#define ADC2_CONFIG N32H47X_48X_ADC_CONFIG(ADC2, RCC_AHB_PERIPHEN_ADC2)
49+
#endif /* ADC2_CONFIG */
50+
#endif /* BSP_USING_ADC2 */
51+
52+
#ifdef BSP_USING_ADC3
53+
#ifndef ADC3_CONFIG
54+
#define ADC3_CONFIG N32H47X_48X_ADC_CONFIG(ADC3, RCC_AHB_PERIPHEN_ADC3)
55+
#endif /* ADC3_CONFIG */
56+
#endif /* BSP_USING_ADC3 */
57+
58+
#ifdef BSP_USING_ADC4
59+
#ifndef ADC4_CONFIG
60+
#define ADC4_CONFIG N32H47X_48X_ADC_CONFIG(ADC4, RCC_AHB_PERIPHEN_ADC4)
61+
#endif /* ADC4_CONFIG */
62+
#endif /* BSP_USING_ADC4 */
63+
64+
#ifdef __cplusplus
65+
}
66+
#endif
67+
68+
#endif /* __ADC_CONFIG_H__ */
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
* Copyright (c) 2006-2026, RT-Thread Development Team
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Change Logs:
7+
* Date Author Notes
8+
* 2026-08-28 FUNMSAN first version
9+
*/
10+
11+
#ifndef __DAC_CONFIG_H__
12+
#define __DAC_CONFIG_H__
13+
14+
#include <rtthread.h>
15+
16+
#ifdef __cplusplus
17+
extern "C" {
18+
#endif
19+
20+
#if defined(N32H473) || defined(N32H474)
21+
#define N32H47X_48X_DAC1234_CLK_PRESCALER 100U
22+
#else
23+
#define N32H47X_48X_DAC1234_CLK_PRESCALER 120U
24+
#endif
25+
26+
#define N32H47X_48X_DAC5678_CLK_PRESCALER 16U
27+
28+
#define N32H47X_48X_DAC_CONFIG(DAC_INSTANCE, DAC_MODULE, DAC_PERIPH, CLK_ENABLE, CLK_PRESCALER) \
29+
{ \
30+
.DACx = DAC_INSTANCE, \
31+
.DAC_Module = DAC_MODULE, \
32+
.periph_clk = DAC_PERIPH, \
33+
.EnablePeriphClk = CLK_ENABLE, \
34+
.DAC_clk_pres = CLK_PRESCALER, \
35+
.Init.DAC_Trigger = DAC_Trigger_Software, \
36+
.Init.DAC_Trigger2 = DAC_Trigger2_Software, \
37+
.Init.DAC_WaveGeneration = DAC_WaveGeneration_None, \
38+
.Init.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0, \
39+
.Init.DAC_OutputBuffer = DISABLE, \
40+
.Init.DAC_TriggerEnable = ENABLE, \
41+
.Init.DAC_ConnectOnChipPeripheral = DISABLE, \
42+
.Init.DAC_ConnectExternalPin = ENABLE, \
43+
.Init.DAC_DMADoubleDataMode = DISABLE, \
44+
.Init.DAC_SignedFormat = DISABLE, \
45+
}
46+
47+
#ifdef BSP_USING_DAC1
48+
#ifndef DAC1_CONFIG
49+
#define DAC1_CONFIG N32H47X_48X_DAC_CONFIG(DAC1, DAC12, RCC_APB1_PERIPH_DAC12, \
50+
RCC_EnableAPB1PeriphClk, N32H47X_48X_DAC1234_CLK_PRESCALER)
51+
#endif /* DAC1_CONFIG */
52+
#endif /* BSP_USING_DAC1 */
53+
54+
#ifdef BSP_USING_DAC2
55+
#ifndef DAC2_CONFIG
56+
#define DAC2_CONFIG N32H47X_48X_DAC_CONFIG(DAC2, DAC12, RCC_APB1_PERIPH_DAC12, \
57+
RCC_EnableAPB1PeriphClk, N32H47X_48X_DAC1234_CLK_PRESCALER)
58+
#endif /* DAC2_CONFIG */
59+
#endif /* BSP_USING_DAC2 */
60+
61+
#ifdef BSP_USING_DAC3
62+
#ifndef DAC3_CONFIG
63+
#define DAC3_CONFIG N32H47X_48X_DAC_CONFIG(DAC3, DAC34, RCC_APB1_PERIPH_DAC34, \
64+
RCC_EnableAPB1PeriphClk, N32H47X_48X_DAC1234_CLK_PRESCALER)
65+
#endif /* DAC3_CONFIG */
66+
#endif /* BSP_USING_DAC3 */
67+
68+
#ifdef BSP_USING_DAC4
69+
#ifndef DAC4_CONFIG
70+
#define DAC4_CONFIG N32H47X_48X_DAC_CONFIG(DAC4, DAC34, RCC_APB1_PERIPH_DAC34, \
71+
RCC_EnableAPB1PeriphClk, N32H47X_48X_DAC1234_CLK_PRESCALER)
72+
#endif /* DAC4_CONFIG */
73+
#endif /* BSP_USING_DAC4 */
74+
75+
#ifdef BSP_USING_DAC5
76+
#ifndef DAC5_CONFIG
77+
#define DAC5_CONFIG N32H47X_48X_DAC_CONFIG(DAC5, DAC56, RCC_AHB_PERIPHEN_DAC56, \
78+
RCC_EnableAHBPeriphClk, N32H47X_48X_DAC5678_CLK_PRESCALER)
79+
#endif /* DAC5_CONFIG */
80+
#endif /* BSP_USING_DAC5 */
81+
82+
#ifdef BSP_USING_DAC6
83+
#ifndef DAC6_CONFIG
84+
#define DAC6_CONFIG N32H47X_48X_DAC_CONFIG(DAC6, DAC56, RCC_AHB_PERIPHEN_DAC56, \
85+
RCC_EnableAHBPeriphClk, N32H47X_48X_DAC5678_CLK_PRESCALER)
86+
#endif /* DAC6_CONFIG */
87+
#endif /* BSP_USING_DAC6 */
88+
89+
#ifdef BSP_USING_DAC7
90+
#ifndef DAC7_CONFIG
91+
#define DAC7_CONFIG N32H47X_48X_DAC_CONFIG(DAC7, DAC78, RCC_AHB_PERIPHEN_DAC78, \
92+
RCC_EnableAHBPeriphClk, N32H47X_48X_DAC5678_CLK_PRESCALER)
93+
#endif /* DAC7_CONFIG */
94+
#endif /* BSP_USING_DAC7 */
95+
96+
#ifdef BSP_USING_DAC8
97+
#ifndef DAC8_CONFIG
98+
#define DAC8_CONFIG N32H47X_48X_DAC_CONFIG(DAC8, DAC78, RCC_AHB_PERIPHEN_DAC78, \
99+
RCC_EnableAHBPeriphClk, N32H47X_48X_DAC5678_CLK_PRESCALER)
100+
#endif /* DAC8_CONFIG */
101+
#endif /* BSP_USING_DAC8 */
102+
103+
#ifdef __cplusplus
104+
}
105+
#endif
106+
107+
#endif /* __DAC_CONFIG_H__ */

0 commit comments

Comments
 (0)