Skip to content

Commit 77e9559

Browse files
authored
[BSP] add some bsp drivers for F448, F472 and add bsp test codes
1 parent ab1f438 commit 77e9559

File tree

815 files changed

+16638
-346608
lines changed

Some content is hidden

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

815 files changed

+16638
-346608
lines changed

bsp/hc32/ev_hc32f448_lqfp80/.config

Lines changed: 249 additions & 31 deletions
Large diffs are not rendered by default.

bsp/hc32/ev_hc32f448_lqfp80/.cproject

Lines changed: 15 additions & 7 deletions
Large diffs are not rendered by default.

bsp/hc32/ev_hc32f448_lqfp80/.project

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,15 @@
6464
<type>2</type>
6565
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/libraries</locationURI>
6666
</link>
67+
<link>
68+
<name>rt-thread/bsp/hc32/platform</name>
69+
<type>2</type>
70+
<locationURI>PARENT-1-PROJECT_LOC/platform</locationURI>
71+
</link>
72+
<link>
73+
<name>rt-thread/bsp/hc32/tests</name>
74+
<type>2</type>
75+
<locationURI>PARENT-1-PROJECT_LOC/tests</locationURI>
76+
</link>
6777
</linkedResources>
6878
</projectDescription>

bsp/hc32/ev_hc32f448_lqfp80/README.md

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,35 +50,43 @@ EV_F448_LQ80_Rev1.0 开发板常用 **板载资源** 如下:
5050

5151
本 BSP 目前对外设的支持情况如下:
5252

53-
| **板载外设** | **支持情况** | **备注** |
54-
| :------------ | :-----------: | :-----------------------------------: |
55-
| USB 转串口 | 支持 | 使用 UART2 |
56-
| LED | 支持 | LED1~4 |
57-
58-
| **片上外设** | **支持情况** | **备注** |
59-
| :------------ | :-----------: | :-----------------------------------: |
60-
| ADC | 支持 | ADC1: CH10, CH11, <br>ADC3: CH1 |
61-
| CAN | 支持 | CAN1、CAN2 |
62-
| GPIO | 支持 | PA0, PA1... PH2 ---> PIN: 0, 1...82 |
63-
| I2C | 支持 | 软件模拟<br>硬件I2C1~2<br>I2C1支持EEPROM(BL24C256) |
64-
| Hwtimer | 支持 | Hwtimer1~5 |
65-
| SPI | 支持 | SPI1~3<br>SPI1支持W25Q |
66-
| UART | 支持 | UART1~6<br>UART2为console使用 |
67-
53+
| **板载外设** | **支持情况** | **备注** |
54+
|:-------- |:--------:|:--------:|
55+
| USB 转串口 | 支持 | 使用 UART2 |
56+
| LED | 支持 | LED1~4 |
57+
58+
| **片上外设** | **支持情况** | **备注** |
59+
|:------------- |:--------:|:------------------------------------------:|
60+
| Crypto | 支持 | AES, CRC, HASH, RNG, UID |
61+
| DAC | 支持 | |
62+
| ADC | 支持 | ADC1: CH10, CH11, <br>ADC3: CH1 |
63+
| CAN | 支持 | CAN1、CAN2 |
64+
| GPIO | 支持 | PA0, PA1... PH2 ---> PIN: 0, 1...82 |
65+
| I2C | 支持 | 软件模拟<br>硬件I2C1~2<br>I2C1支持EEPROM(BL24C256) |
66+
| PM | 支持 | |
67+
| Lptimer | 支持 | |
68+
| Hwtimer | 支持 | Hwtimer1~5 |
69+
| Pulse_encoder | 支持 | |
70+
| PWM | 支持 | |
71+
| RTC | 支持 | 闹钟精度为1分钟 |
72+
| WDT | 支持 | |
73+
| I2C | 支持 | 软件、硬件 I2C |
74+
| QSPI | 支持 | |
75+
| SPI | 支持 | SPI1~3<br>SPI1支持W25Q |
76+
| UART | 支持 | UART1~6<br>UART2为console使用 |
6877

6978
## 使用说明
7079

7180
使用说明分为如下两个章节:
7281

7382
- 快速上手
74-
83+
7584
本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
7685

7786
- 进阶使用
78-
87+
7988
本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
8089

81-
8290
### 快速上手
8391

8492
本 BSP 为开发者提供 MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
@@ -120,9 +128,13 @@ msh >
120128
4. 输入`scons --target=mdk5/iar` 命令重新生成工程。
121129

122130
## 注意事项
123-
131+
132+
| 板载外设 | 模式 | 注意事项 |
133+
| ---- | ---- | ------------------------------------------------------------------------------------------------------ |
134+
| USB | host | 若配置为U盘主机模式,出现部分U盘无法识别或者写入失败时,可以尝试将RTT抽象层中rt_udisk_run()函数的rt_usbh_storage_reset()操作注释掉,测试是否可以获得更好的兼容性。 |
135+
124136
## 联系人信息
125137

126138
维护人:
127139

128-
- [小华半导体MCU](https://www.xhsc.com.cn),邮箱:<xhsc_mcu@xhsc.com.cn>
140+
- [小华半导体MCU](https://www.xhsc.com.cn),邮箱:<xhsc_ae_cd_ap@xhsc.com.cn>

bsp/hc32/ev_hc32f448_lqfp80/SConstruct

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,13 @@ objs.extend(SConscript(os.path.join(libraries_path_prefix, hc32_library, 'SConsc
5656
# include drivers
5757
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'hc32_drivers', 'SConscript')))
5858

59-
objs.extend(SConscript(os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')))
59+
# include platform
60+
platform_path_prefix = os.path.dirname(SDK_ROOT) + '/platform'
61+
objs.extend(SConscript(os.path.join(platform_path_prefix, 'SConscript')))
62+
63+
# include tests
64+
test_path_prefix = os.path.dirname(SDK_ROOT) + '/tests'
65+
objs.extend(SConscript(os.path.join(test_path_prefix, 'SConscript')))
6066

6167
# make a building
6268
DoBuilding(TARGET, objs)

bsp/hc32/ev_hc32f448_lqfp80/board/Kconfig

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,17 @@ menu "Onboard Peripheral Drivers"
4242
select RT_USING_MTD_NOR
4343
default n
4444

45+
config BSP_USING_EXT_IO
46+
bool
47+
default y
48+
4549
endmenu
4650

4751
menu "On-chip Peripheral Drivers"
4852
config BSP_USING_GPIO
4953
bool "Enable GPIO"
5054
select RT_USING_PIN
55+
select BSP_USING_TCA9539
5156
default y
5257

5358
menuconfig BSP_USING_UART
@@ -212,12 +217,12 @@ menu "On-chip Peripheral Drivers"
212217
if BSP_USING_I2C1_SW
213218
config BSP_I2C1_SCL_PIN
214219
int "i2c1 scl pin number"
215-
range 1 176
216-
default 51
220+
range 1 80
221+
default 10
217222
config BSP_I2C1_SDA_PIN
218223
int "I2C1 sda pin number"
219-
range 1 176
220-
default 90
224+
range 1 80
225+
default 9
221226
endif
222227
endif
223228

@@ -368,23 +373,20 @@ menu "On-chip Peripheral Drivers"
368373
config BSP_USING_DAC1
369374
bool "using dac1"
370375
default n
371-
config BSP_USING_DAC2
372-
bool "using dac2"
373-
default n
374376
endif
375377

376-
menuconfig BSP_USING_CAN
377-
bool "Enable CAN"
378+
menuconfig BSP_USING_MCAN
379+
bool "Enable MCAN"
378380
default n
379381
select RT_USING_CAN
380382
select RT_CAN_USING_HDR
381383
select BSP_USING_TCA9539
382-
if BSP_USING_CAN
383-
config BSP_USING_CAN1
384-
bool "using can1"
384+
if BSP_USING_MCAN
385+
config BSP_USING_MCAN1
386+
bool "using mcan1"
385387
default n
386-
config BSP_USING_CAN2
387-
bool "using can2"
388+
config BSP_USING_MCAN2
389+
bool "using mcan2"
388390
default n
389391
endif
390392

@@ -418,10 +420,13 @@ menu "On-chip Peripheral Drivers"
418420
default BSP_RTC_USING_XTAL32
419421

420422
config BSP_RTC_USING_XTAL32
421-
bool "RTC USING XTAL32"
423+
bool "RTC Using XTAL32"
422424

423425
config BSP_RTC_USING_LRC
424-
bool "RTC USING LRC"
426+
bool "RTC Using LRC"
427+
428+
config BSP_RTC_USING_XTAL_DIV
429+
bool "RTC Using XTAL Division"
425430
endchoice
426431
endif
427432

bsp/hc32/ev_hc32f448_lqfp80/board/SConscript

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,18 @@ board.c
1212
board_config.c
1313
''')
1414

15-
if GetDepend(['BSP_USING_TCA9539']):
16-
src += Glob('ports/tca9539.c')
17-
18-
if GetDepend(['BSP_USING_SPI_FLASH']):
19-
src += Glob('ports/drv_spi_flash.c')
20-
2115
path = [cwd]
2216
path += [cwd + '/ports']
2317
path += [cwd + '/config']
2418

2519
startup_path_prefix = SDK_LIB
2620

2721
if rtconfig.PLATFORM in ['gcc']:
28-
src += [startup_path_prefix + '/hc32f448_ddl/drivers/cmsis/Device/HDSC/hc32f4xx/Source/GCC/startup_hc32f448.S']
22+
src += [startup_path_prefix + '/hc32f448_ddl/cmsis/Device/HDSC/hc32f4xx/Source/GCC/startup_hc32f448.S']
2923
elif rtconfig.PLATFORM in ['armcc', 'armclang']:
30-
src += [startup_path_prefix + '/hc32f448_ddl/drivers/cmsis/Device/HDSC/hc32f4xx/Source/ARM/startup_hc32f448.s']
24+
src += [startup_path_prefix + '/hc32f448_ddl/cmsis/Device/HDSC/hc32f4xx/Source/ARM/startup_hc32f448.s']
3125
elif rtconfig.PLATFORM in ['iccarm']:
32-
src += [startup_path_prefix + '/hc32f448_ddl/drivers/cmsis/Device/HDSC/hc32f4xx/Source/IAR/startup_hc32f448.s']
26+
src += [startup_path_prefix + '/hc32f448_ddl/cmsis/Device/HDSC/hc32f4xx/Source/IAR/startup_hc32f448.s']
3327

3428
CPPDEFINES = ['HC32F448', '__DEBUG']
3529
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

bsp/hc32/ev_hc32f448_lqfp80/board/board.c

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Change Logs:
88
* Date Author Notes
99
* 2024-02-20 CDT first version
10+
* 2024-06-07 CDT Add XTAL divider config code for RTC
1011
*/
1112

1213
#include "board.h"
@@ -41,6 +42,9 @@ void SystemClock_Config(void)
4142
#if defined(BSP_RTC_USING_XTAL32) || defined(RT_USING_PM)
4243
stc_clock_xtal32_init_t stcXtal32Init;
4344
#endif
45+
#if defined(BSP_RTC_USING_XTAL_DIV)
46+
stc_clock_xtaldiv_init_t stcXtaldivInit;
47+
#endif
4448

4549
/* PCLK0, HCLK Max 200MHz */
4650
/* PCLK1, PCLK4 Max 100MHz */
@@ -87,17 +91,27 @@ void SystemClock_Config(void)
8791
stcXtal32Init.u8Filter = CLK_XTAL32_FILTER_RUN_MD;
8892
(void)CLK_Xtal32Init(&stcXtal32Init);
8993
#endif
94+
95+
#if defined(BSP_RTC_USING_XTAL_DIV)
96+
/* Xtal Div config */
97+
(void)CLK_XtalDivStructInit(&stcXtaldivInit);
98+
/* 8000000Hz / 32768Hz = 0x7A12 / 0x80 */
99+
stcXtaldivInit.u32Num = 0x7A12UL;
100+
stcXtaldivInit.u32Den = 0x80UL;
101+
stcXtaldivInit.u32State = CLK_XTALDIV_ON;
102+
(void)CLK_XtalDivInit(&stcXtaldivInit);
103+
#endif
90104
}
91105

92106
/** Peripheral Clock Configuration
93107
*/
94108
void PeripheralClock_Config(void)
95109
{
96-
#if defined(BSP_USING_CAN1)
97-
CLK_SetCANClockSrc(CLK_CAN1, CLK_CANCLK_SYSCLK_DIV6);
110+
#if defined(BSP_USING_MCAN1)
111+
CLK_SetCANClockSrc(CLK_MCAN1, CLK_MCANCLK_SYSCLK_DIV5);
98112
#endif
99-
#if defined(BSP_USING_CAN2)
100-
CLK_SetCANClockSrc(CLK_CAN2, CLK_CANCLK_SYSCLK_DIV6);
113+
#if defined(BSP_USING_MCAN2)
114+
CLK_SetCANClockSrc(CLK_MCAN2, CLK_MCANCLK_SYSCLK_DIV5);
101115
#endif
102116

103117
#if defined(RT_USING_ADC)

0 commit comments

Comments
 (0)