summaryrefslogtreecommitdiff
path: root/bsp/wch/risc-v/ch32v103r-evt/README.md
blob: 892c11c394b3323999c89bc72e3b046caaacf563 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# ch32v103r-evt BSP 说明
## 开发板简介

ch32v103r-evt 是基于 CH32V103 MCU 推出了一款开发板,包含 WCH-Link 调试器,具有丰富的外设,比较适合入门学习 RISC-V 架构。

开发板图片

<img src="figures/2022-03-27_182300.bmp" alt="2022-03-27_182300" style="zoom:50%;" />

基本硬件资源:

- 青稞 V3A 处理器,最高 80MHz 系统主频;
- 支持单周期乘法和硬件除法;
- 20KB SRAM,64KB CodeFlash;
- 供电范围:2.7V ~ 5.5V,GPIO同步供电电压;
- 多种低功耗模式:睡眠/停止/待机;
- 上电/断电复位(POR/PDR);
- 可编程电压监测器(PVD);
- 7通道 DMA 控制器;
- 16路 TouchKey 通道监测;
- 16路12位 ADC 转换通道;
- 7个定时器;
- 1个 USB2.0 主机/设备接口(全速和低速);
- 2个 IIC 接口(支持 SMBus/PMBus);
- 3个 USART 接口;
- 2个 SPI 接口(支持 Master 和 Slave 模式);
- 51个 I/O 口,所有的 I/O 口都可以映射到16个外部中断;
- CRC 计算单元,96位芯片唯一 ID;
- 串行单线调试(SWD)接口;
- 封装形式:LQFP64M、LQFP48、QFN48。

更多信息和资源请访问 [WCH CHV103](http://www.wch.cn/products/CH32V103.html?)

## 编译说明

板级包支持 RISC-V GCC 开发环境,以下是具体版本信息:

| IDE/编译器 | 已测试版本           |
| ---------- | -------------------- |
| GCC        | WCH RISC-V GCC 8.2.0 |


## 外设支持

本 BSP 目前对外设驱动的支持情况如下:

| 驱动      | 支持情况 |            备注            |
| --------- | -------- | :------------------------:|
| UART      | 支持     | USART 1       |
| GPIO      | 支持     | PA0...PE15                  |


### IO在板级支持包中的映射情况

| IO号 | 板级包中的定义 |
| ---- | -------------- |
| PA9(默认与板载wch-link串口相连)  | USART1_TX      |
| PA10(默认与板载wch-link串口相连) | USART1_RX      |



## 使用说明

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

### 快速上手

本 BSP 为开发者提供 SCons编译配置。下面介绍如何将系统运行起来。

#### SCons 编译

需要先正确配置 RISC-V GCC 位置,推荐使用 RT_Studio 软件包里的

```
import os
ARCH     = 'risc-v'
CPU      = 'ch32v1'
# toolchains options
CROSS_TOOL  = 'gcc'

#------- toolchains path -------------------------------------------------------
if os.getenv('RTT_CC'):
    CROSS_TOOL = os.getenv('RTT_CC')

if  CROSS_TOOL == 'gcc':
    PLATFORM    = 'gcc'
    EXEC_PATH   = r'D:/Softwares/RT_ThreadStudio/repo/Extract/ToolChain_Support_Packages/WCH/RISC-V-GCC-WCH/8.2.0/bin'
else:
    print('Please make sure your toolchains is GNU GCC!')
    exit(0)

# if os.getenv('RTT_EXEC_PATH'):
    # EXEC_PATH = os.getenv('RTT_EXEC_PATH')

```

开始 scons 编译

```
LT@DESKTOP-WIN10 E:\WorkSpaces\rt-thread\bsp\wch\risc-v\ch32v103r-evt                             
>scons                                                                                           
scons: Reading SConscript files ...                                                               
Newlib version:3.0.0                                                                              
scons: done reading SConscript files.                                                             
scons: Building targets ...                                                                       
scons: building associated VariantDir targets: build                                              
CC build\applications\main.o                                                                      
CC build\board\board.o                                                                            
CC build\board\ch32v10x_it.o                                                                      
....                            
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_misc.o                              
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_pwr.o                               
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_rcc.o                               
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_rtc.o                               
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_spi.o                               
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_tim.o                               
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_usart.o                             
CC build\libraries\ch32_library\StdPeriph_Driver\src\ch32v10x_wwdg.o                              
LINK rtthread.elf                                                                                 
riscv-none-embed-objcopy -O binary rtthread.elf rtthread.bin                                      
riscv-none-embed-size rtthread.elf                                                                
text    data     bss     dec     hex filename                                                  
63540     392    8080   72012   1194c rtthread.elf                                              
scons: done building targets.                                                                     
```

#### 硬件连接

使用数据线连接板载 wch-link 到 PC,打开电源开关。

#### 下载

打开WCH_RISC-V_Programmer下载软件,选择bsp目录下生成的`rtthread.bin` 文件,单击执行进行下载。

![image-20220404205018822](figures/image-20220404205018822.png)

>  WCH_RISC-V_Programmer下载软件 可以从 MRS IDE中直接导出

#### 运行结果


在终端工具里打开板载 wch-link 串口(WCHDapLink SERIAL,默认115200-8-1-N),复位设备后,在串口上可以看到 RT-Thread 的输出信息:

```bash

 \ | /
- RT -     Thread Operating System
 / | \     4.1.0 build Apr  4 2022 16:57:50
 2006 - 2022 Copyright by RT-Thread team

 MCU: CH32V103C8T6
 SysClk: 72000000Hz
 www.wch.cn
msh >ps
thread   pri  status      sp     stack size max used left tick  error
-------- ---  ------- ---------- ----------  ------  ---------- ---
tshell    20  running 0x00000140 0x00000400    83%   0x00000003 000
tidle0    31  ready   0x000000b0 0x00000100    70%   0x00000002 000
timer      4  suspend 0x000000e0 0x00000200    43%   0x00000009 000
main      10  suspend 0x00000140 0x00000800    20%   0x0000000f 000
```

## 联系人信息

维护人:

- [blta](https://github.com/blta)