Skip to content

Commit 29c76ad

Browse files
committed
add V10x and V30x
1 parent ad69366 commit 29c76ad

File tree

206 files changed

+54546
-98
lines changed

Some content is hidden

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

206 files changed

+54546
-98
lines changed

Diff for: README.md

+17-3
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,40 @@ Then you can search for "**wch**" through the "**board manager**", find the inst
2929
It will be a long-term support and maintenance project, unless we encounter force majeure factors.The current version supports the following development boards:
3030

3131
- [CH32V00x EVT Boards](#CH32V00x-EVT-Boards)
32+
- [CH32V10x EVT Boards](#CH32V10x-EVT-Boards)
3233
- [CH32V20x EVT Boards](#CH32V20x-EVT-Boards)
34+
- [CH32V30x EVT Boards](#CH32V30x-EVT-Boards)
3335
- [CH32X035 EVT Boards](#CH32X035-EVT-Boards)
3436

3537
### CH32V00x EVT Boards
3638

3739
| Status | Boards name | Peripherals | Release | Notes |
3840
| :----: | ---- | ---- | :-----: | :---- |
39-
| :heavy_check_mark: | CH32V003F4P | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C since 1.0.2 |
41+
| :heavy_check_mark: | CH32V003F4P | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C_Master since 1.0.2 |
4042

4143
### CH32V20x EVT Boards
4244

4345
| Status | Boards name | Peripherals | Release | Notes |
4446
| :----: | ---- | ---- | :-----: | :---- |
45-
| :heavy_check_mark: | CH32V203G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C since 1.0.2 |
47+
| :heavy_check_mark: | CH32V203G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C_Master since 1.0.2 |
4648

4749
### CH32X035 EVT Boards
4850

4951
| Status | Boards name | Peripherals | Release | Notes |
5052
| :----: | ---- | ---- | :-----: | :---- |
51-
| :heavy_check_mark: | CH32X035G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.1 | SPI,I2C since 1.0.2 |
53+
| :heavy_check_mark: | CH32X035G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.1 | SPI,I2C_Master since 1.0.2 |
54+
55+
### CH32V10x EVT Boards
56+
57+
| Status | Boards name | Peripherals | Release | Notes |
58+
| :----: | ---- | ---- | :-----: | :---- |
59+
| :heavy_check_mark: | CH32V103R8T6_BLACK | ADC,DAC,USART,GPIO,EXTI,SysTick,SPI,I2C_Master | 1.0.3 | - |
60+
61+
### CH32V30x EVT Boards
62+
63+
| Status | Boards name | Peripherals | Release | Notes |
64+
| :----: | ---- | ---- | :-----: | :---- |
65+
| :heavy_check_mark: | CH32V307VCT6_BLACK | ADC,DAC,USART,GPIO,EXTI,SysTick,SPI,I2C_Master | 1.0.3 | - |
5266

5367
## Submit bugs
5468

Diff for: boards.txt

+167
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,91 @@ CH32X035_EVT.menu.rtlib.full.build.flags.ldspecs=
182182

183183

184184

185+
#############################################################################
186+
##CH32V10x EVT Board -lprintf
187+
188+
CH32V10x_EVT.name=CH32V10x
189+
CH32V10x_EVT.build.core=arduino
190+
CH32V10x_EVT.build.board=CH32V10x_EVT
191+
CH32V10x_EVT.upload.maximum_size=0
192+
CH32V10x_EVT.upload.maximum_data_size=0
193+
CH32V10x_EVT.build.variant_h=variant_{build.board}.h
194+
195+
196+
#CH32V103R8T6 EVT Board CH32V10x_3V3: 3.3V power supply CH32V10x_5V: 5V power supply
197+
CH32V10x_EVT.menu.pnum.CH32V103R8T6=CH32V103R8T6 EVT
198+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.node=NODE_V103R8T6
199+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.upload.maximum_size=65536
200+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.upload.maximum_data_size=20480
201+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.mcu=QingKe-V3A
202+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.board=CH32V103R8T6
203+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.series=CH32V10x
204+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.variant=CH32V10x/CH32V103R8T6
205+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.chip=CH32V10x_3V3
206+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.march=rv32imac
207+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.mabi=ilp32
208+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.math_lib_gcc=-lm
209+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.IQ_math_RV32=
210+
CH32V10x_EVT.menu.pnum.CH32V103R8T6.build.ch_extra_lib=-lprintf
211+
212+
213+
# Upload menu
214+
CH32V10x_EVT.menu.upload_method.swdMethod=WCH-SWD
215+
CH32V10x_EVT.menu.upload_method.swdMethod.upload.protocol=
216+
CH32V10x_EVT.menu.upload_method.swdMethod.upload.options=
217+
CH32V10x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE
218+
219+
220+
221+
# Optimizations
222+
CH32V10x_EVT.menu.opt.osstd=Smallest (-Os default)
223+
CH32V10x_EVT.menu.opt.osstd.build.flags.optimize=-Os
224+
CH32V10x_EVT.menu.opt.oslto=Smallest (-Os) with LTO
225+
CH32V10x_EVT.menu.opt.oslto.build.flags.optimize=-Os -flto
226+
CH32V10x_EVT.menu.opt.o1std=Fast (-O1)
227+
CH32V10x_EVT.menu.opt.o1std.build.flags.optimize=-O1
228+
CH32V10x_EVT.menu.opt.o1lto=Fast (-O1) with LTO
229+
CH32V10x_EVT.menu.opt.o1lto.build.flags.optimize=-O1 -flto
230+
CH32V10x_EVT.menu.opt.o2std=Faster (-O2)
231+
CH32V10x_EVT.menu.opt.o2std.build.flags.optimize=-O2
232+
CH32V10x_EVT.menu.opt.o2lto=Faster (-O2) with LTO
233+
CH32V10x_EVT.menu.opt.o2lto.build.flags.optimize=-O2 -flto
234+
CH32V10x_EVT.menu.opt.o3std=Fastest (-O3)
235+
CH32V10x_EVT.menu.opt.o3std.build.flags.optimize=-O3
236+
CH32V10x_EVT.menu.opt.o3lto=Fastest (-O3) with LTO
237+
CH32V10x_EVT.menu.opt.o3lto.build.flags.optimize=-O3 -flto
238+
CH32V10x_EVT.menu.opt.ogstd=Debug (-Og)
239+
CH32V10x_EVT.menu.opt.ogstd.build.flags.optimize=-Og
240+
CH32V10x_EVT.menu.opt.o0std=No Optimization (-O0)
241+
CH32V10x_EVT.menu.opt.o0std.build.flags.optimize=-O0
242+
243+
244+
# Debug information
245+
CH32V10x_EVT.menu.dbg.none=None
246+
CH32V10x_EVT.menu.dbg.none.build.flags.debug=
247+
CH32V10x_EVT.menu.dbg.enable_sym=Symbols Enabled (-g)
248+
CH32V10x_EVT.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
249+
CH32V10x_EVT.menu.dbg.enable_log=Core logs Enabled
250+
CH32V10x_EVT.menu.dbg.enable_log.build.flags.debug=
251+
CH32V10x_EVT.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
252+
CH32V10x_EVT.menu.dbg.enable_all.build.flags.debug=-g
253+
254+
255+
# C Runtime Library
256+
CH32V10x_EVT.menu.rtlib.nano=Newlib Nano (default)
257+
CH32V10x_EVT.menu.rtlib.nano.build.flags.ldflags=--specs=nano.specs --specs=nosys.specs
258+
CH32V10x_EVT.menu.rtlib.nanofp=Newlib Nano + Float Printf
259+
CH32V10x_EVT.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _printf_float
260+
CH32V10x_EVT.menu.rtlib.nanofs=Newlib Nano + Float Scanf
261+
CH32V10x_EVT.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _scanf_float
262+
CH32V10x_EVT.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
263+
CH32V10x_EVT.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _printf_float -u _scanf_float
264+
CH32V10x_EVT.menu.rtlib.full=Newlib Standard
265+
CH32V10x_EVT.menu.rtlib.full.build.flags.ldspecs=
266+
267+
268+
269+
185270

186271

187272
#############################################################################
@@ -269,4 +354,86 @@ CH32V20x_EVT.menu.rtlib.full.build.flags.ldspecs=
269354

270355

271356

357+
#############################################################################
358+
##CH32V30x EVT Board -lprintfloat
359+
360+
CH32V30x_EVT.name=CH32V30x
361+
CH32V30x_EVT.build.core=arduino
362+
CH32V30x_EVT.build.board=CH32V30x_EVT
363+
CH32V30x_EVT.upload.maximum_size=0
364+
CH32V30x_EVT.upload.maximum_data_size=0
365+
CH32V30x_EVT.build.variant_h=variant_{build.board}.h
366+
367+
368+
#CH32V307VCT6 EVT Board CH32V30x_C: connected product_line CH32V30x: normal product_line
369+
CH32V30x_EVT.menu.pnum.CH32V307VCT6=CH32V307VCT6 EVT
370+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.node=NODE_V307VCT6
371+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.upload.maximum_size=262144
372+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.upload.maximum_data_size=65536
373+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.mcu=QingKe-V4F
374+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.board=CH32V307VCT6
375+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.series=CH32V30x
376+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.variant=CH32V30x/CH32V307VCT6
377+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.chip=CH32V30x_C
378+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.march=rv32imafcxw
379+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.mabi=ilp32f
380+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.math_lib_gcc=-lm
381+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.IQ_math_RV32=
382+
CH32V30x_EVT.menu.pnum.CH32V307VCT6.build.ch_extra_lib=-lprintfloat
383+
384+
385+
# Upload menu
386+
CH32V30x_EVT.menu.upload_method.swdMethod=WCH-SWD
387+
CH32V30x_EVT.menu.upload_method.swdMethod.upload.protocol=
388+
CH32V30x_EVT.menu.upload_method.swdMethod.upload.options=
389+
CH32V30x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE
390+
391+
392+
393+
# Optimizations
394+
CH32V30x_EVT.menu.opt.osstd=Smallest (-Os default)
395+
CH32V30x_EVT.menu.opt.osstd.build.flags.optimize=-Os
396+
CH32V30x_EVT.menu.opt.oslto=Smallest (-Os) with LTO
397+
CH32V30x_EVT.menu.opt.oslto.build.flags.optimize=-Os -flto
398+
CH32V30x_EVT.menu.opt.o1std=Fast (-O1)
399+
CH32V30x_EVT.menu.opt.o1std.build.flags.optimize=-O1
400+
CH32V30x_EVT.menu.opt.o1lto=Fast (-O1) with LTO
401+
CH32V30x_EVT.menu.opt.o1lto.build.flags.optimize=-O1 -flto
402+
CH32V30x_EVT.menu.opt.o2std=Faster (-O2)
403+
CH32V30x_EVT.menu.opt.o2std.build.flags.optimize=-O2
404+
CH32V30x_EVT.menu.opt.o2lto=Faster (-O2) with LTO
405+
CH32V30x_EVT.menu.opt.o2lto.build.flags.optimize=-O2 -flto
406+
CH32V30x_EVT.menu.opt.o3std=Fastest (-O3)
407+
CH32V30x_EVT.menu.opt.o3std.build.flags.optimize=-O3
408+
CH32V30x_EVT.menu.opt.o3lto=Fastest (-O3) with LTO
409+
CH32V30x_EVT.menu.opt.o3lto.build.flags.optimize=-O3 -flto
410+
CH32V30x_EVT.menu.opt.ogstd=Debug (-Og)
411+
CH32V30x_EVT.menu.opt.ogstd.build.flags.optimize=-Og
412+
CH32V30x_EVT.menu.opt.o0std=No Optimization (-O0)
413+
CH32V30x_EVT.menu.opt.o0std.build.flags.optimize=-O0
414+
415+
416+
# Debug information
417+
CH32V30x_EVT.menu.dbg.none=None
418+
CH32V30x_EVT.menu.dbg.none.build.flags.debug=
419+
CH32V30x_EVT.menu.dbg.enable_sym=Symbols Enabled (-g)
420+
CH32V30x_EVT.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
421+
CH32V30x_EVT.menu.dbg.enable_log=Core logs Enabled
422+
CH32V30x_EVT.menu.dbg.enable_log.build.flags.debug=
423+
CH32V30x_EVT.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
424+
CH32V30x_EVT.menu.dbg.enable_all.build.flags.debug=-g
425+
426+
427+
# C Runtime Library
428+
CH32V30x_EVT.menu.rtlib.nano=Newlib Nano (default)
429+
CH32V30x_EVT.menu.rtlib.nano.build.flags.ldflags=--specs=nano.specs --specs=nosys.specs
430+
CH32V30x_EVT.menu.rtlib.nanofp=Newlib Nano + Float Printf
431+
CH32V30x_EVT.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _printf_float
432+
CH32V30x_EVT.menu.rtlib.nanofs=Newlib Nano + Float Scanf
433+
CH32V30x_EVT.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _scanf_float
434+
CH32V30x_EVT.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
435+
CH32V30x_EVT.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs --specs=nosys.specs -u _printf_float -u _scanf_float
436+
CH32V30x_EVT.menu.rtlib.full=Newlib Standard
437+
CH32V30x_EVT.menu.rtlib.full.build.flags.ldspecs=
438+
272439

Diff for: cores/arduino/ch32/PinAF_ch32yyxx.h

+7
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,16 @@
1010
#include "../../../variants/CH32V00x/PinAF_CH32V00x.h"
1111
#endif
1212

13+
#if defined(CH32V10x)
14+
#include "../../../variants/CH32V10x/PinAF_CH32V10x.h"
15+
#endif
1316

1417
#if defined(CH32X035)
1518
#include "../../../variants/CH32X035/PinAF_CH32X035.h"
1619
#endif
1720

21+
#if defined(CH32V30x) || defined(CH32V30x_C)
22+
#include "../../../variants/CH32V30x/PinAF_CH32V30x.h"
23+
#endif
24+
1825
#endif /* _PINAF_CH32YYXX_H */

Diff for: cores/arduino/ch32/PortNames.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,19 @@ GPIO_TypeDef *set_GPIO_Port_Clock(uint32_t port_idx)
8888
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
8989
break;
9090
#endif
91-
#if defined GPIOF_BASE
91+
#if defined RCC_APB2Periph_GPIOF
9292
case PortF:
9393
gpioPort = GPIOF;
9494
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
9595
break;
9696
#endif
97-
#if defined GPIOG_BASE
97+
#if defined RCC_APB2Periph_GPIOG
9898
case PortG:
9999
gpioPort = GPIOG;
100100
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
101101
break;
102102
#endif
103-
#if defined GPIOH_BASE
103+
#if defined RCC_APB2Periph_GPIOH
104104
case PortH:
105105
gpioPort = GPIOH;
106106
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOH, ENABLE);

Diff for: cores/arduino/ch32/analog.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ static int calibration_value = 0;
3131
/* Private_Defines */
3232
#if defined(ADC_MODULE_ENABLED) && !defined(ADC_MODULE_ONLY)
3333

34-
#if (defined(CH32V20x) || defined(CH32V30x) || defined(CH32V10x) )
34+
#if (defined(CH32V20x) || defined(CH32V30x) || defined(CH32V30x_C) || defined(CH32V10x) )
3535

3636
/* Default to use maximum sampling period */
3737
#ifndef ADC_SAMPLINGTIME
@@ -423,6 +423,8 @@ void dac_write_value(PinName pin, uint32_t value, uint8_t do_init)
423423

424424
if (do_init == 1)
425425
{
426+
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );
427+
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );
426428
/*##-1- Configure the DAC peripheral */
427429
g_current_pin = pin;
428430

@@ -580,7 +582,7 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution)
580582
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
581583
ADC_InitStructure.ADC_NbrOfChannel = 1;
582584
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
583-
#if !defined(CH32V00x)
585+
#if !defined(CH32V00x) && !defined(CH32V10x)
584586
ADC_InitStructure.ADC_OutputBuffer = ENABLE;
585587
#endif
586588
ADC_Init(padc, &ADC_InitStructure);

Diff for: cores/arduino/ch32/ch32_def.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
#if defined(CH32V20x) || defined(CH32V203xB) || defined(CH32V208)
2828
#include "ch32v20x.h"
29-
#elif defined(CH32V30x)
29+
#elif defined(CH32V30x) || defined(CH32V30x_C)
3030
#include "ch32v30x.h"
3131
#elif defined(CH32V10x)
3232
#include "ch32v10x.h"

Diff for: cores/arduino/ch32/ch32_def_build.h

+13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
#define COM_STARTUP_FILE "startup_ch32v00x.S"
88
#elif defined(CH32X035)
99
#define COM_STARTUP_FILE "startup_ch32x035.S"
10+
11+
#elif defined(CH32V10x_3V3)
12+
#define COM_STARTUP_FILE "startup_ch32v10x_3v3.S"
13+
#elif defined(CH32V10x_5V)
14+
#define COM_STARTUP_FILE "startup_ch32v10x_5v.S"
15+
1016
#elif defined(CH32V203)
1117
#define COM_STARTUP_FILE "startup_ch32v20x_D6.S"
1218
#define CH32V20x_D6
@@ -16,6 +22,13 @@
1622
#elif defined(CH32V208)
1723
#define COM_STARTUP_FILE "startup_ch32v20x_D8W.S"
1824
#define CH32V20x_D8W
25+
26+
#elif defined(CH32V30x_C)
27+
#define COM_STARTUP_FILE "startup_ch32v30x_D8C.S"
28+
#define CH32V30x_D8C
29+
#elif defined(CH32V30x)
30+
#define COM_STARTUP_FILE "startup_ch32v30x_D8.S"
31+
#define CH32V30x_D8
1932
#else
2033
#error "Unknow chip!"
2134
#endif

0 commit comments

Comments
 (0)